是否有自动方法来维护返回的数据帧的列('C','B','A')的顺序?
g = df.groupby(['people'])
g['people'].agg({'C' : len,
'B' : len,
'A' : len,
})
Run Code Online (Sandbox Code Playgroud)
这将返回A,B,C而不是C,B,A的列.
我只能找到示例,但不能找到agg函数本身的文档.
这似乎是一种解决方法:
g = df.groupby(['people'])
g['people'].agg({'C' : len,
'B' : len,
'A' : len,
}).reindex_axis(['C','B','A'], axis=1)
Run Code Online (Sandbox Code Playgroud)
Jus*_*nov 14
OrderedDict与pandas-0.18.0-py2.7令人惊讶地工作:
from collections import OrderedDict
g = df.groupby(['people'])
g['people'].agg( OrderedDict([
('C' , len),
('B' , len),
('A' , len),
]) )
Run Code Online (Sandbox Code Playgroud)
您可以使用一些索引技巧来按照您想要的顺序获取列:
g = df.groupby(['people'])
col_order = ['C', 'B', 'A']
agg_fnxs = [len, len, len]
agg_dict = dict(zip(col_rder, agg_fnxs))
g['people'].agg(agg_dict)[col_corder]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4457 次 |
| 最近记录: |