Pandas groupby 出力を dataframe に変換する方法
このチュートリアルでは、pandas GroupBy の出力を pandas DataFrame に変換する方法について説明します。
例: Pandas GroupBy 出力を DataFrame に変換する
さまざまなチームのバスケットボール選手が獲得したポイントを示す次のパンダ データフレームがあるとします。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
' points ': [5, 7, 7, 10, 12, 22, 15, 10]})
#view DataFrame
print (df)
team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10
次の構文を使用して、チームとポジションごとにグループ化されたプレーヤーの数をカウントできます。
#count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()
#viewoutput
print (group)
team position
AC 1
F 1
G2
BF 3
G 1
dtype: int64
出力から、チームとポジションごとにグループ化されたプレーヤーの総数がわかります。
ただし、次のように出力の各行にチーム名を表示したいとします。
team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1
この結果を達成するには、GroupBy の実行時に単純にreplace_index()を使用します。
#count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')
#viewoutput
print (df_out)
team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1
出力が希望の形式で表示されます。
reset_index()のname引数は、GroupBy によって生成される新しい列の名前を指定することに注意してください。
結果が実際に pandas DataFrame であることも確認できます。
#display object type of df_out
type (df_out)
pandas.core.frame.DataFrame
注: pandas での GroupBy 操作の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas: グループごとの累積合計を計算する方法
パンダ: グループごとに一意の値を数える方法
パンダ: グループごとの相関を計算する方法