![](/img/trans.png)
[英]Python pandas create new column with groupby with custom agg function
[英]Column Order in Pandas Groupby Agg Function
是否有一種自動方法來維護返回的數據幀的列('C'、'B'、'A')的順序?
g = df.groupby(['people'])
g['people'].agg({'C' : len,
'B' : len,
'A' : len,
})
這會將列返回為 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)
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),
]) )
您可以使用一些索引技巧以您想要的順序獲取列:
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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.