パンダ: グループごとに最初の n 行を取得する方法


次の基本構文を使用して、pandas DataFrame のグループごとに最初の N 行を取得できます。

 df. groupby (' group_column '). head ( 2 ). reset_index (drop= True )

この特定の構文は、グループごとに最初の2行を返します。

head()関数の値を変更するだけで、異なる先頭行数が返されます。

次の例は、次の pandas DataFrame でこの構文を使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4, 7, 7]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2 AG 7
3 AF 9
4AF 12
5 BG 9
6 BG 9
7 BF 4
8 BF 7
9 BF 7

例 1: 列ごとにグループ化された最初の N 行を取得する

次のコードは、チーム変数によってグループ化された最初の 2 行を返す方法を示しています。

 #get top 2 rows grouped by team
df. groupby (' team '). head ( 2 ). reset_index (drop= True )

        team position points
0 A G 5
1 A G 7
2 B G 9
3 B G 9

出力には、チーム変数ごとにグループ化された最初の 2 行が表示されます。

例 2: 複数の列でグループ化された最初の N 行を取得する

次のコードは、チーム変数とポジション変数ごとにグループ化された最初の 2 行を返す方法を示しています。

 #get top 2 rows grouped by team and position
df. groupby ([' team ', ' position ']). head ( 2 ). reset_index (drop= True )

team position points
0 A G 5
1 A G 7
2 A F 9
3 A F 12
4 B G 9
5 B G 9
6 B F 4
7 B F 7

出力には、チーム変数とポジション変数ごとにグループ化された最初の 2 行が表示されます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

パンダ: 列内で一意の値を見つける方法
パンダ: 複数の列で一意の値を見つける方法
パンダ: 列内の特定の値の出現を数える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です