当前位置: 首页 > 文档资料 > Pandas 官方教程 >

十分钟搞定 Pandas - 七、 分组

优质
小牛编辑
126浏览
2023-12-01

对于”group by”操作,我们通常是指以下一个或多个操作步骤:

  • (Splitting)按照一些规则将数据分为不同的组;

  • (Applying)对于每组数据分别执行一个函数;

  • (Combining)将结果组合到一个数据结构中;

详情请参阅:Grouping section

In [91]: df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',   ....:                           'foo', 'bar', 'foo', 'foo'],   ....:                    'B' : ['one', 'one', 'two', 'three',   ....:                           'two', 'two', 'one', 'three'],   ....:                    'C' : np.random.randn(8),   ....:                    'D' : np.random.randn(8)})   ....: In [92]: dfOut[92]:      A      B         C         D0  foo    one -1.202872 -0.0552241  bar    one -1.814470  2.3959852  foo    two  1.018601  1.5528253  bar  three -0.595447  0.1665994  foo    two  1.395433  0.0476095  bar    two -0.392670 -0.1364736  foo    one  0.007207 -0.5617577  foo  three  1.928123 -1.623033

1、 分组并对每个分组执行sum函数:

In [93]: df.groupby('A').sum()Out[93]:             C        DA                     bar -2.802588  2.42611foo  3.146492 -0.63958

2、 通过多个列进行分组形成一个层次索引,然后执行函数:

In [94]: df.groupby(['A','B']).sum()Out[94]:                   C         DA   B                        bar one   -1.814470  2.395985    three -0.595447  0.166599    two   -0.392670 -0.136473foo one   -1.195665 -0.616981    three  1.928123 -1.623033    two    2.414034  1.600434