是否可以按索引标签(而不是列标签)进行分组?这看起来应该是微不足道的,所以也许我错过了一些东西。
import pandas as pd
import numpy as np
df = pd.DataFrame([['a', 'b', 'c'],
['a', 'a', 'b'],
['b', 'b', 'c']],
index=['q', 'r', 's'],
columns=['x', 'y', 'z'])
df
x y z
q a b c
r a a b
s b b c
这正如我所期望的那样:
df.groupby('x', axis=0).agg(sum)
y z
x
a ba cb
b b c
但是这失败了
df.groupby('s', axis=1).agg(sum)
出现KeyError
。
我希望得到的是:
s b c
q ab c
r aa b
是否可以按索引值进行分组?我意识到我可以转置表格,但是我需要执行多个分组,如果我可以避免这种情况,那么出错的可能性会小得多。另外,如果axis
参数没有指定要应用groupby的轴,它会做什么?
最佳答案
我认为 df.groupby('r', axis=1).agg(sum)
中的 r
应该是 s
。也许这是你的错误?
无论如何,
您可以根据索引值进行分组,如下所示。 (我的解决方法...)
print df[~df.index.isin(['s'])].groupby(df.loc['s'], axis=1).agg(sum)
s b c
q ab c
r aa b
关于python - pandas groupby 索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948407/