[英]Pandas Pivot Error “Exception: Data must be 1-dimensional”
我正在将Pycharm(2018.2.4版本)与运行于其上的Python 3.6.7一起使用。
我目前尝试使用pandas枢纽函数,甚至使用示例代码:
import pandas as pd
df = pd.DataFrame({'foo':['one', 'one', 'one', 'two', 'two','two'],'bar':
['A', 'B', 'C', 'A', 'B', 'C'],'baz': [1, 2, 3, 4, 5, 6],'zoo': ['x',
'y', 'z', 'q', 'w', 't']})
df.pivot(index='foo', columns='bar', values=['baz', 'zoo'])
导致错误: 异常:数据必须为一维
仅当我将一列列表传递给values参数时,才有这种情况,但是此示例直接来自函数帮助: https : //pandas.pydata.org/pandas-docs/stable/generation/pandas.DataFrame。 pivot.html
它过去曾经为我工作,但本周已停止工作,不知道为什么。 我的熊猫版本是0.23.4,numpy版本是1.15.4。
有人知道导致此问题/如何解决它的原因吗?
谢谢!
在Jupyter Notebook中使用Pandas:0.22.0和numpy:1.14.0进行测试时,我能够重新创建相同的错误。
我无法弄清楚为什么会发生此问题,但我将示例中的代码重写为
import pandas as pd
df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two',
'two'],
'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
'baz': [1, 2, 3, 4, 5, 6],
'zoo': ['x', 'y', 'z', 'q', 'w', 't']})
df.set_index(['foo','bar'],inplace=True)
df.unstack(level=1)
并获得了预期的输出(如pandas doc所示 )
希望这可以帮助!
以下对我有用。 试试看!
import pandas as pd df = pd.DataFrame({'foo':['one', 'one', 'one', 'two', 'two','two'],'bar': ['A', 'B', 'C', 'A', 'B', 'C'],'baz': [1, 2, 3, 4, 5, 6],'zoo': ['x', 'y', 'z', 'q', 'w', 't']}) df.pivot(index='foo', columns='bar')[['baz', 'zoo']]
如果您将其制成字典,则可以正常使用。 尝试这个!
df = pd.DataFrame({'foo':['one', 'one', 'one', 'two', 'two','two'],'bar':
['A', 'B', 'C', 'A', 'B', 'C'],'baz': [1, 2, 3, 4, 5, 6],'zoo': ['x',
'y', 'z', 'q', 'w', 't']})
df.pivot(index='foo', columns='bar', values=['baz', 'zoo'])
#output:
baz zoo
bar A B C A B C
foo
one 1 2 3 x y z
two 4 5 6 q w t
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.