熊猫枢轴错误"Exception: Data must be 1-dimensional"



我正在使用运行Python 3.6.7的Pycharm(版本2018.2.4)。

我目前尝试使用 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/generated/pandas.DataFrame.pivot.html

它过去曾经对我有用,本周停止工作,不知道为什么。我的熊猫版本是 0.23.4,numpy 版本是 1.15.4。

有谁知道是什么原因造成的/如何解决它?

谢谢!

在 jupyter 笔记本中进行测试时,我能够重现相同的错误熊猫: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)

并获得了预期的输出(如熊猫文档中所示)

希望这有帮助!

以下内容对我有用。试一试!

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

相关内容

最新更新