[英]Filter pandas Dataframe based on max values in a column
我在索引中有一個重復值的DataFrame。 我想過濾這個數據集只顯示每個索引的一個實例,方法是選擇索引中具有不同列中最大值的行。 例如,我的DataFrame看起來像這樣:
DF:
Product ID Store Sales
1 A 50
1 B 200
1 C 20
2 A 400
2 B 10
3 A 200
4 A 50
4 B 100
4 C 500
我想將此數據過濾到此:
DF2:
Product ID Store Sales
1 B 200
2 A 400
3 A 200
4 C 500
關於如何在熊貓中最好地解決這個問題的任何想法?
非常感謝你花時間陪伴 -
您可以執行groupby
上的“產品ID”,然后應用idxmax
在“銷售”一欄。 這將創建一個具有最高值索引的系列。 然后,我們可以使用索引值使用iloc
索引到原始數據幀
In [201]:
df.iloc[df.groupby('Product ID')['Sales'].agg(pd.Series.idxmax)]
Out[201]:
Product_ID Store Sales
1 1 B 200
3 2 A 400
5 3 A 200
8 4 C 500
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.