ホームページ  >  記事  >  バックエンド開発  >  Pandas DataFrame の各グループの最初の行を複数の列で取得するにはどうすればよいですか?

Pandas DataFrame の各グループの最初の行を複数の列で取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-10 04:54:02456ブラウズ

How to Get the First Row of Each Group in a Pandas DataFrame by Multiple Columns?

パンダ データフレームの各グループの最初の行を複数の列で取得する

パンダ データフレームでは、多くの場合、最初の行を取得する必要があります。特定の列に基づいてデータフレームをグループ化した後の各グループの行。このタスクは、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。