有人可以帮助我理解为什么Python字典保留原始数据顺序而不是采用排序后的数据。
例如,这里是一个数据框(df):
Id Date
0 AB001 12-03-2020
1 AB002 14-08-2023
2 AB003 16-08-2017
3 AB001 23-12-2023
将“日期”列按最新到最旧排序后:
df.sort_values(['Date'],ascending=[False],inplace=True)
Id Date
1 AB001 2023-12-23
3 AB002 2023-08-14
0 AB001 2020-03-12
2 AB003 2017-08-16
当我使用下面的代码映射它们时
date_dict = dict(zip(df['Id'], df['Date']))
打印 Key
ABOO1
的值时 --> 输出是 2020-03-12
而不是 2023-12-23
。
为什么会出现这种情况?
如果您想要最新日期,请使用
groupby.max
:
df.groupby('Id')['Date'].max().to_dict()
这比仅保留一个值的排序更有效。