パンダ データフレームの各グループの最初の行を複数の列で取得する
パンダ データフレームでは、多くの場合、最初の行を取得する必要があります。特定の列に基づいてデータフレームをグループ化した後の各グループの行。このタスクは、pandas の組み込みメソッドを使用して効率的に実行できます。
これを実現するには、.first() メソッドを使用して、各グループの最初の (null 以外の) 要素を取得します。 first() の構文は次のとおりです。
df.groupby('group_columns').first()
この例では、「id」列と「value」列の両方で DataFrame をグループ化し、各グループの最初の行を取得します。次のコードを使用できます:
df.groupby(['id', 'value']).first()
これにより、次の結果が生成されます:
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
結果の DataFrame の列として 'id' を使用したい場合は、次のようにすることができます。以下に示すように、reset_index() を使用してインデックスをリセットします。
df.groupby(['id', 'value']).first().reset_index()
この操作の出力は次のようになります。
id | value |
---|---|
1 | first |
2 | first |
3 | first |
4 | second |
5 | first |
6 | first |
7 | fourth |
さらに、各行の最初の n 行を取得する場合は、グループの場合は、first() の代わりに .head() メソッドを使用できます。たとえば、各グループの最初の 2 行を取得するには、
df.groupby('id').head(2).reset_index(drop=True)
を使用できます。これにより、次の DataFrame が返されます:
id | value |
---|---|
1 | first |
1 | second |
2 | first |
2 | second |
3 | first |
3 | third |
4 | second |
4 | fifth |
5 | first |
6 | first |
6 | second |
7 | fourth |
7 | fifth |
以上がPandas DataFrame の各グループの最初の行を複数の列で取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。