簡體   English   中英

Pandas Groupby Agg 函數中的列順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM