ysaz (ImanazaS) blog

最近はデータ分析や機械学習が中心。たまに音楽や書評。

(続)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ステップで同じ結果が得られるので、こちらの方が楽かと。
カラム名を補正してやる手間は残りますが)