ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame 内の各グループから上位のレコードを効率的に取得するにはどうすればよいですか?

Pandas DataFrame 内の各グループから上位のレコードを効率的に取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-25 18:03:10
オリジナル
677 人が閲覧しました

How Can I Efficiently Get the Top Records from Each Group in a Pandas DataFrame?

Pandas: グループ内の最上位レコードを効率的に取得する

Pandas DataFrame を使用する場合、各グループから先頭のレコードを抽出することが頻繁に必要になります。 。一般的なアプローチは、「groupby」関数と「apply」関数を利用して各グループ内のレコードを列挙することです。

dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
ログイン後にコピー

ただし、より合理化されたアプローチもあります。

df.groupby('id').head(2)
ログイン後にコピー

これこのメソッドは、中間の計算を必要とせずに、最上位のレコードを直接フェッチします。さらに、生成された DataFrame は元のインデックスを維持します。

結果の MultiIndex を平坦化するには、次のコマンドを使用します。

df.groupby('id').head(2).reset_index(drop=True)
ログイン後にコピー

これにより、次の DataFrame が生成されます。

id value
1 1
1 2
2 1
2 2
3 1
4 1

またはでは、SQL の「row_number()」ウィンドウ関数を使用して、グループ内のレコードを効率的に列挙できます。ただし、この機能は現在 Pandas では利用できません。

以上がPandas DataFrame 内の各グループから上位のレコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート