我有一个这样的dataframe:
| IDX|一个|B级|C类|修改日期|
| - -----|- -----|- -----|- -----|- -----|
| 0| 1| 2| 3| 2022 - 06 - 30 - 2022 - 2023 - 2023 - 2023 - 2024 - 2025 - 2025 - 2025 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026|
| 1| 1| 2| 3| 2022 - 06 - 30 - 2022 - 2023 - 2023 - 2023 - 2024 - 2025 - 2025 - 2025 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026|
| 2| 1| 2| 4| 2022 - 06 - 30 - 2022 - 2023 - 2023 - 2023 - 2024 - 2025 - 2025 - 2025 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026|
| 3| 1| 2| 3| 2022 - 07 - 10|
我想删除A
/B
/C
列的重复行,但不删除modified date
列的重复行。如果重复的行在modified date
中具有不同的值,则在modified date
中保留较大的值。
结果应该是这样的:
| IDX|一个|B级|C类|修改日期|
| - -----|- -----|- -----|- -----|- -----|
| 2| 1| 2| 4| 2022 - 06 - 30 - 2022 - 2023 - 2023 - 2023 - 2024 - 2025 - 2025 - 2025 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026 - 2026|
| 3| 1| 2| 3| 2022 - 07 - 10|
它会删除索引为0和1的行,因为它们的值与索引为3的值相同,但它们在modified date
中的值较小。
- 注意:在我的真实案例中,有大约30列用于检查重复数据。此外,在我的实际情况中,检查重复时需要忽略两列。我只是使用列
A
/B
/C
/modified date
来简化问题。**
- 注意:在我的真实案例中,有大约30列用于检查重复数据。此外,在我的实际情况中,检查重复时需要忽略两列。我只是使用列
使用df.drop_duplicates()
是不够的。
如何做到这一点?
1条答案
按热度按时间bkhjykvo1#
基于更新的评论:
听起来像是您想要每组具有最大
modified date
的行。这可以用
.groupby()
+.idxmax()
来实现:看起来你想传递
subset=
和keep=
(假设日期是排序的)