如何解决数据分组具有多级列索引的Pandas groupby
是否有一种方法可以对数据框具有多级列索引的列进行分组?
例如,如果我们具有以下数据框:
arrays=[['bar','bar','baz','foo','foo'],['one','two','one','two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])
df = pd.DataFrame(np.random.randn(3,6),index=['A','B','C'],columns=index)
df[('foo','two')] = ['L1','L1','L2']
如下所示:
first bar baz foo
second one two one two one two
A -0.484875 -1.150611 0.661847 0.513653 -0.775554 L1
B -0.871233 -1.022598 -0.446219 0.306569 -1.031515 L1
C -0.510137 -0.206838 -0.195791 -0.591447 0.830448 L2
我该如何执行以下操作?
df.groupby(('foo','two'))
代码引发异常:
raise ValueError("Grouper for '%s' not 1-dimensional" % t)
ValueError: Grouper for 'foo' not 1-dimensional
解决方法
正如评论所建议的,这是由过时的熊猫模块引起的。
在该版本(0.20.3)中,以下groupby起作用:
df.groupby([('foo','two')])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。