如何按列消除重複項,保留具有最高值的行
當DataFrame 的一列中遇到重複值時,它有必要實施消除它們的策略。一種方法是僅保留另一列中具有最高值的行。
考慮此範例DataFrame:
A B 1 10 1 20 2 30 2 40 3 10
目標是將此DataFrame 轉換為:
A B 1 20 2 40 3 10
一種方法是在消除重複項之前對DataFrame 進行排序:
df.sort_values(by='B', ascending=False).drop_duplicates(subset='A')
但是,對於涉及多列和細微排序要求的更複雜場景,可以使用groupby。下面的程式碼示範了這種方法:
df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()])
此解決方案按「A」列對行進行分組,並為每個組產生在「B」列中具有最大值的行。
以上是如何消除 DataFrame 中的重複行,僅保留特定列中具有最高值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!