通俗解释:
groupby为对原DataFrame进行打包分组,agg为聚合(其操作包括max、min、std、sum、count)。
- DataFrame数据:
>>> df = pd.DataFrame({'A': [1, 1, 2, 2],
... 'B': [1, 2, 3, 4],
... 'C': np.random.randn(4)})
>>> df
A B C
0 1 1 0.362838
1 1 2 0.227877
2 2 3 1.267767
3 2 4 -0.562860
- 一、The aggregation is for each column:(根据Dataframe的列'A'进行划分,再进行1项聚合操作,原DataFrame的其他各列各产生1列)
>>> df.groupby('A').agg('min')
B C
A
1 1 0.227877
2 3 -0.562860
- 二、Multiple aggregations:(聚合后的多项操作,其他列的每列会各自产生多列)
>>> df.groupby('A').agg(['min', 'max'])
B C
min max min max
A
1 1 2 0.227877 0.362838
2 3 4 -0.562860 1.267767
- 三、Select a column for multiple aggregation(聚合后选择1列‘B’进行多项操作,产生多列)
>>> df.groupby('A').B.agg(['min', 'max'])
min max
A
1 1 2
2 3 4
- 四、Select several columns for multiple aggregation(聚合后选择1列进行多项操作,产生多列,并存为新列名)
>>> df.groupby('A').B.agg({'B_max': 'max', 'B_min': 'min'})
B_max B_min
A
1 2 1
2 4 3
- 五、Select several columns for multiple aggregation(聚合后选择多列进行多种操作)
>>> df.groupby('A').agg({'B': ['min', 'max'], 'C': min})
B C
min max min
A
1 1 2 0.227877
2 3 4 -0.562860