Pandas DataFrame の各グループの最初の行を取得する
質問:
方法グループ化が複数の列で定義されている Pandas DataFrame から各グループの最初の行を効率的に抽出できますか?
回答:
の最初の行を取得するには複数の列に基づく Pandas DataFrame の各グループ:
データのグループ化: groupby() メソッドを使用して、目的の列ごとに DataFrame をグループ化します:
df_grouped = df.groupby(['id', 'value'])
集計関数を適用します: first() 関数を各グループに適用して、最初の非 null 要素を取得します:
df_first_rows = df_grouped.first()
インデックスのリセット (オプション): 「id」列と「value」列を別個の列として必要な場合は、reset_index() メソッドを使用します:
df_first_rows = df_first_rows.reset_index()
例:
次の DataFrame を考えます:
df = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 6, 7, 7], 'value': ["first", "second", "second", "first", "second", "first", "third", "fourth", "fifth", "second", "fifth", "first", "first", "second", "third", "fourth", "fifth"]})
上記の手順を適用します:
df_grouped = df.groupby(['id', 'value']) df_first_rows = df_grouped.first() df_first_rows = df_first_rows.reset_index() print(df_first_rows)
出力:
id value 0 1 first 1 2 first 2 3 first 3 4 second 4 5 first 5 6 first 6 7 fourth
このコードは、「id」列と「value」列で定義された各グループの最初の行を正常に取得します。
以上が複数の列に基づいて Pandas DataFrame の各グループの最初の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。