(続)Pandasでのデータ集計
以前に以下の記事でPythonのPandasライブラリを使った集計方法をまとめていた。
nami3373.hatenablog.com
今になって、これよりもシンプルなやり方に気づいたのでメモ。
import pandas as pd # データフレームを適当に作成 df = pd.DataFrame(data=[('2016-04-01', 'a', 10.2, 60.3), ('2016-04-02', 'a', 16.4, 71.7), ('2016-04-01', 'b', 11.1, 65.6), ('2016-04-02', 'b', 15.1, 73.2)]) df.columns = ['date', 'id', 'temp', 'humidity'] # pivot tableで集計 df1 = df.pivot_table(index='date', columns='id', values=['temp', 'humidity']).reset_index() df1.columns = [s1 + '_' + s2 for (s1, s2) in df1.columns] df1.rename(columns={'date_':'date'}, inplace=True) df1.index.name = None df1
結果は以下の通り。
date | humidity_a | humidity_b | temp_a | temp_b | |
---|---|---|---|---|---|
0 | 2016-04-01 | 60.3 | 65.6 | 10.2 | 11.1 |
1 | 2016-04-02 | 71.7 | 73.2 | 16.4 | 15.1 |
以前のやり方は3つのステップを踏んでいたが、1ステップで同じ結果が得られるので、こちらの方が楽かと。
(カラム名を補正してやる手間は残りますが)