groupby
特定の列の最小値を持たないすべての行を削除するために、パンダのデータフレームで使用しています。このようなもの:
df1 = df.groupby("item", as_index=False)["diff"].min()
ただし、これらの 2 つ以上の列がある場合、他の列 (たとえばotherstuff
、私の例) は削除されます。を使用してこれらの列を保持できますか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 otherstuff
0 1 1 2
1 2 -6 2
2 3 0 0
しかし、私が得ているのは:
item diff
0 1 1
1 2 -6
2 3 0
私はドキュメントを調べてきましたが、何も見つかりません。私は試した:
df1 = df.groupby(["item", "otherstuff"], as_index=false)["diff"].min()
df1 = df.groupby("item", as_index=false)["diff"].min()["otherstuff"]
df1 = df.groupby("item", as_index=false)["otherstuff", "diff"].min()
しかし、それらのどれも機能しません (最後のもので、構文はグループが作成された後に集約するためのものであることに気付きました)。