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」列を保持したまま、目的の結果を生成します。行の内容が同じであっても、結果のインデックスは異なる場合があることに注意してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3