0
我想分组数据框,并在同一时间由某一列的绝对值进行排序。熊猫集团的数据框和按列值排序
groups values foo bar
75 A 3 1 2
77 B -3 31 34
112 A 4 0 4
129 C 50 5 3
134 C -60 44 5
在整个数据帧,我可以使用
df.reindex(df.values.abs().sort_values(ascending=False).index)
这工作完全正常。但是,对于分组的数据帧,这显然不起作用。
当我尝试,
df.groupby('groups')['values'].reindex(df.values.abs().sort_values(ascending=False).index)
我得到预期的错误:
AttributeError: Cannot access callable attribute 'reindex' of 'SeriesGroupBy' objects, try using the 'apply' method
试图apply
可能需要作出的绝对值另一列,但我不希望添加这个。有没有一个干净的方式来实现呢?
所需的输出将是被排序的值的列中的分组的数据帧(对象):
for groups, data in df_grouped:
print group, data
A,
values foo bar
75 3 1 2
112 4 0 4
B,
values foo bar
77 -3 31 34
C,
values foo bar
134 -60 44 5
129 50 5 3
的排序是正确的,但我想有对数据的进一步处理一个分组的数据帧返回。 – Fourier
你可以[发布](http://stackoverflow.com/posts/38267145/edit)期望的输出? – MaxU
看到我编辑的问题的预期输出。谢谢@MaxU – Fourier