Groupby 操作中の他の列の維持
pandas データフレームで groupby 操作を実行する場合、多くの場合、そうでない列を保持する必要があります。グループ化または集約プロセスに関与します。デフォルトでは、これらの他の列は操作が完了すると削除されます。保持された列に貴重な情報が含まれている場合、これは問題となる可能性があります。
次のデータ フレームを考えてみましょう:
item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9
データ フレームを「item」列でグループ化し、 「diff」列の最小値を指定すると、結果のデータ フレームは次のようになります。
item diff 0 1 1 1 2 -6 2 3 0
「otherstuff」列が削除されていることに注意してください。この列を保持するには、idxmin() メソッドを使用して最小 diff の要素のインデックスを取得し、それらを選択します。
>>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns]
もう 1 つの方法は、データ フレームを「diff」で並べ替えることです。 " 列を選択し、各項目グループの最初の要素を取得します:
>>> df.sort_values("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns]
これらのメソッドは両方とも、「otherstuff」列を保持しながら、目的の結果を生成します。行の内容が同じであっても、結果のインデックスは異なる場合があることに注意してください。
以上がgroupby 操作中に Pandas DataFrame 内の他の列を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。