【发布时间】:2013-02-09 08:01:16
【问题描述】:
我融化了一个 pandas 数据框,用于与 ggplot 一起绘图(这通常需要长格式的数据框),如下所示:
test = pandas.melt(iris, id_vars=["Name"], value_vars=["SepalLength", "SepalWidth"])
这会将 iris 数据集的 Name 字段保留在索引中,但会将列 SepalLength 和 SepalWidth 转换为长格式:
test.ix[0:10]
Out:
Name variable value
0 Iris-setosa SepalLength 5.1
1 Iris-setosa SepalLength 4.9
2 Iris-setosa SepalLength 4.7
3 Iris-setosa SepalLength 4.6
4 Iris-setosa SepalLength 5.0
5 Iris-setosa SepalLength 5.4
6 Iris-setosa SepalLength 4.6
7 Iris-setosa SepalLength 5.0
8 Iris-setosa SepalLength 4.4
9 Iris-setosa SepalLength 4.9
10 Iris-setosa SepalLength 5.4
我怎样才能“解开”这个数据框?我希望保留 Name 列,但将 variable 字段的值转换为单独的列。 Name 字段不是唯一的,所以我认为它不能用作索引。我的印象是 pivot 是执行此操作的正确函数,但它不正确:
test.pivot(columns="variable", values="value")
KeyError: u'no item named '
我怎么能这样做?另外,我是否可以解开存在多个长格式列的数据帧,即test 中的多个列类似于上面的variable 列?这意味着columns 将不得不接受列列表,而不是单个值,似乎。谢谢。
【问题讨论】:
标签: python numpy pandas dataform dataframe