Python Pandas Pivot - 为什么失败

use*_*979 5 python python-2.7 pandas

我已经尝试了一段时间才能将这个问题告诉wrk我不能 - 我阅读文档但我必须误解某些东西

我有一个长格式的数据框架,我想把它做得很宽 - 这很常见.但是我收到了一个错误

from pandas import DataFrame 
data = DataFrame({'value' : [1,2,3,4,5,6,7,8,9,10,11,12],
                  'group' : ['a','a','a','b','b','b','b','c','c','c','d','d']})
data.pivot(columns='group')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是(lats部分,因为它们相当广泛):ValueError:不能用null键标记索引

我在python(笔记本)中尝试了这个,并且在OS X中的常规python c命令行也尝试了相同的结果

感谢您的任何见解,我相信这将是一个基本的东西

Anz*_*zel 8

从你想要做的事情来看,你试图传递'群',因为index枢轴失败了.它应该是:

data.pivot(data.index, 'group')
Run Code Online (Sandbox Code Playgroud)

要么,

# the format is pivot(index=None, columns=None, values=None)
data.pivot(index=data.index, columns='group')
Run Code Online (Sandbox Code Playgroud)

但是我不完全确定你想要的预期输出,如果你只想要更短的演示,你总是可以使用transpose:

data.T
Run Code Online (Sandbox Code Playgroud)

或者,在您的案例中最好的陈述是groupby:

data.groupby('group').sum()
       value
group       
a          6
b         22
c         27
d         23
Run Code Online (Sandbox Code Playgroud)