900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > pandas 聚合 df.groupby.agg

pandas 聚合 df.groupby.agg

时间:2019-10-09 22:09:20

相关推荐

pandas 聚合 df.groupby.agg

#df.groupby.agg ( arg, *args, **kwargs )#聚合:使用可调用、字符串、dict或字符串/可调用列表进行聚合import pandas as pddf = pd.DataFrame({'A':['a','a','b','c','b','c','d'],'B':[4,5,3,6,7,3,2],'C':[22,21,43,55,31,55,66],'D':[123,223,441,554,234,665,772]})print(df)#分组df_groupby = df.groupby('A')print('组内的键值:\n{}'.format(df_groupby.groups.keys()))print("观察其中某组 'a':\n{}".format(df.iloc[df_groupby.groups['a']]))print('查看所有分组:')for index,data in df_groupby:print(index)print(data)#多列分组df_grb_morecols = df.groupby(['A','B'])print('组内的键值:\n{}'.format(df_grb_morecols.groups.keys()))print("观察其中某组 ('a', 4):\n{}".format(df.iloc[df_grb_morecols.groups[('a', 4)]]))print('查看所有分组:')for index,data in df_grb_morecols:print(index)print(data)#聚合#默认情况对分组之后其他列进行聚合df_agg = df.groupby('A').agg(['min','mean','max'])print(df_agg)#对分组后的部分列进行聚合#某些情况,只需要对部分数据进行不同的聚合操作,可以通过字典来构建num_agg = {'C':['min','mean','max']}print('部分列进行聚合:\n{}'.format(df.groupby('A').agg(num_agg)))num_agg = {'C':['min','mean','max'],'D':['min','max']}print('部分列进行聚合:\n{}'.format(df.groupby('A').agg(num_agg)))

输出结果:

A B C D0 a 4 22 1231 a 5 21 2232 b 3 43 4413 c 6 55 5544 b 7 31 2345 c 3 55 6656 d 2 66 772组内的键值:dict_keys(['a', 'b', 'c', 'd'])观察其中某组 'a':A B C D0 a 4 22 1231 a 5 21 223查看所有分组:aA B C D0 a 4 22 1231 a 5 21 223bA B C D2 b 3 43 4414 b 7 31 234cA B C D3 c 6 55 5545 c 3 55 665dA B C D6 d 2 66 772组内的键值:dict_keys([('a', 4), ('a', 5), ('b', 3), ('b', 7), ('c', 3), ('c', 6), ('d', 2)])观察其中某组 ('a', 4):A B C D0 a 4 22 123查看所有分组:('a', 4)A B C D0 a 4 22 123('a', 5)A B C D1 a 5 21 223('b', 3)A B C D2 b 3 43 441('b', 7)A B C D4 b 7 31 234('c', 3)A B C D5 c 3 55 665('c', 6)A B C D3 c 6 55 554('d', 2)A B C D6 d 2 66 772B C D min mean max min mean max min mean maxA a 4 4.5 5 21 21.5 22 123 173.0 223b 3 5.0 7 31 37.0 43 234 337.5 441c 3 4.5 6 55 55.0 55 554 609.5 665d 2 2.0 2 66 66.0 66 772 772.0 772部分列进行聚合:Cmin mean maxA a 21 21.5 22b 31 37.0 43c 55 55.0 55d 66 66.0 66部分列进行聚合:C Dmin mean max min maxA a 21 21.5 22 123 223b 31 37.0 43 234 441c 55 55.0 55 554 665d 66 66.0 66 772 772>>>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。