【发布时间】:2021-10-08 02:50:14
【问题描述】:
我是熊猫新手。所以我有看起来像这样的数据框:
id car date color
1 2 bmw 2021-05-21 black
2 3 bmw 2021-05-21 yellow
3 4 mercedes 2021-06-21 red
4 5 toyota 2021-11-01 pink
5 6 toyota 2021-09-06 black
6 7 mercedes 2021-07-07 white
我需要优先选择具有最新日期和颜色的唯一“汽车”的行(红色、粉红色、黑色、白色、黄色)我的意思是如果按日期排序的数据框中的汽车颜色为红色,那么我保存该行,如果汽车没有红色,那么我搜索粉红色等。
首先 - 按日期排序 其次 - 如果日期重复,我按所需颜色对其进行排序
我按日期排序:
df.sort_values(by="date").drop_duplicates(subset=["car", "color"], keep="last")
它看起来像那个 rn:
id car date color
1 2 bmw 2021-05-21 black
2 3 bmw 2021-05-21 yellow
3 4 mercedes 2021-06-21 red
6 7 mercedes 2021-07-07 white
5 6 toyota 2021-09-06 black
4 5 toyota 2021-11-01 pink
我真正想看到的:
id car date color
2 bmw 2021-05-21 black
5 toyota 2021-11-01 pink
7 mercedes 2021-07-07 white
【问题讨论】:
-
@user3483203 好吧,我明白了,我将其更改为 car + color,因为我需要在下一步中保存颜色,按优先级颜色对其进行排序,也许逻辑不正确,但我需要删除日期不是最新的行
标签: python pandas dataframe sorting drop-duplicates