4
如何对熊猫群操作应用排序?下面的命令返回一个错误,指出“布尔”对象不是可调用应用排序到一个熊猫群操作
import pandas as pd
df.groupby('cokey').sort('A')
cokey A B
11168155 18 56
11168155 0 18
11168155 56 96
11168156 96 152
11168156 0 96
如何对熊猫群操作应用排序?下面的命令返回一个错误,指出“布尔”对象不是可调用应用排序到一个熊猫群操作
import pandas as pd
df.groupby('cokey').sort('A')
cokey A B
11168155 18 56
11168155 0 18
11168155 56 96
11168156 96 152
11168156 0 96
通常,这种排序是在GROUPBY键执行,因为你已经发现了,你不能叫sort
一个GROUPBY对象上,是什么你可以做的是叫apply
并通过DataFrame.sort
功能并通过列作为kwarg PARAM:
df.sort('A').groupby('cokey')
0123:
In [58]:
df.groupby('cokey').apply(pd.DataFrame.sort, 'A')
Out[58]:
cokey A B
cokey
11168155 1 11168155 0 18
0 11168155 18 56
2 11168155 56 96
3 11168155 96 152
或者你可以只使用df分组之前排序
更新
为0.17.0
及以上版本DataFrame.sort
现在已经过时,看到docs,一个现在应该使用DataFrame.sort_values
:
df.groupby('cokey').apply(pd.DataFrame.sort_values, 'A')
的感谢!有没有办法reset_index()结果数据框? – user308827
随后的操作变得混乱,多级索引仍然存在 – user308827
那么你通过添加这种排序标准来引入另一级索引,你必须在调用'reset_index'后放弃多余的索引恐怕 – EdChum