pandas分组聚合

.. code:: ipython3

import pandas as pd
import numpy as np
df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
                'key2': ['one', 'two', 'one', 'two', 'one'],
                'data1': np.random.randn(5),
                'data2': np.random.randn(5)})
grouped = df.groupby('key1')
grouped.agg('mean')

.. raw:: html

<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>data1</th>
      <th>data2</th>
    </tr>
    <tr>
      <th>key1</th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>a</th>
      <td>-1.139944</td>
      <td>-0.318132</td>
    </tr>
    <tr>
      <th>b</th>
      <td>0.185783</td>
      <td>-0.976789</td>
    </tr>
  </tbody>
</table>
</div>

.. code:: ipython3

grouped.agg(['sum','mean'])

.. raw:: html

<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr>
      <th></th>
      <th colspan="2" halign="left">data1</th>
      <th colspan="2" halign="left">data2</th>
    </tr>
    <tr>
      <th></th>
      <th>sum</th>
      <th>mean</th>
      <th>sum</th>
      <th>mean</th>
    </tr>
    <tr>
      <th>key1</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>a</th>
      <td>-3.419832</td>
      <td>-1.139944</td>
      <td>-0.954396</td>
      <td>-0.318132</td>
    </tr>
    <tr>
      <th>b</th>
      <td>0.371566</td>
      <td>0.185783</td>
      <td>-1.953577</td>
      <td>-0.976789</td>
    </tr>
  </tbody>
</table>
</div>

.. code:: ipython3

grouped['data1'].agg(['sum','mean'])

.. raw:: html

<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>sum</th>
      <th>mean</th>
    </tr>
    <tr>
      <th>key1</th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>a</th>
      <td>-3.419832</td>
      <td>-1.139944</td>
    </tr>
    <tr>
      <th>b</th>
      <td>0.371566</td>
      <td>0.185783</td>
    </tr>
  </tbody>
</table>
</div>

.. code:: ipython3

grouped[['data1']].agg(['sum','mean'])

.. raw:: html

<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr>
      <th></th>
      <th colspan="2" halign="left">data1</th>
    </tr>
    <tr>
      <th></th>
      <th>sum</th>
      <th>mean</th>
    </tr>
    <tr>
      <th>key1</th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>a</th>
      <td>-3.419832</td>
      <td>-1.139944</td>
    </tr>
    <tr>
      <th>b</th>
      <td>0.371566</td>
      <td>0.185783</td>
    </tr>
  </tbody>
</table>
</div>
posted @ 2017-11-03 13:46  Frank_07  阅读(305)  评论(0)    收藏  举报