Python 字典:将排序数据帧列映射到字典时出现问题

问题描述 投票:0回答:1

有人可以帮助我理解为什么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

为什么会出现这种情况?

python pandas dataframe dictionary data-structures
1个回答
0
投票

如果您想要最新日期,请使用

groupby.max
:

df.groupby('Id')['Date'].max().to_dict()

这比仅保留一个值的排序更有效。

© www.soinside.com 2019 - 2024. All rights reserved.