【问题标题】:Python Pandas Pivot - Why FailsPython Pandas Pivot - 为什么会失败
【发布时间】:2014-11-05 19:04:10
【问题描述】:

我已经尝试了一段时间来解决这个问题,但我做不到 - 我阅读了文档,我一定是误解了一些东西

我有一个长格式的数据框,我想让它变宽 - 这很常见。但我得到一个错误

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')

我得到的错误是(lats 部分,因为它们非常广泛):ValueError: cannot label index with a null key

我在 python (notebook) 和 OS X 中的常规 python c 命令行中尝试了这个,结果相同

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

【问题讨论】:

  • 您确定需要支点吗? data.T呢?

标签: python python-2.7 pandas


【解决方案1】:

根据您的尝试,您试图将“组”作为index 传递,因此枢轴失败。 应该是:

data.pivot(data.index, 'group')

或者,

# the format is pivot(index=None, columns=None, values=None)
data.pivot(index=data.index, columns='group')

但是我不完全确定您想要什么预期的输出,如果您只是想要更短的演示文稿,您可以随时使用transpose

data.T

或者,在您的情况下,最适合展示的是groupby

data.groupby('group').sum()
       value
group       
a          6
b         22
c         27
d         23

【讨论】:

  • 谢谢。这行得通。我试图为所有 a 值设置一列,为所有 b 值设置一列,等等。我意识到,由于它们的长度不相等,我会得到 NA,在现实生活中,我会将它用于相等的集合
猜你喜欢
  • 2016-04-11
  • 2021-10-10
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多