首页 > 解决方案 > 转换为python字典时保留pandas df的重复索引

问题描述

我有一个 df ,它有一个'2020-10-25 02:00:00'具有不同值的重复索引:

df
...                    5
2020-10-25 02:00:00    10
2020-10-25 02:00:00    7
...                    8

由于夏季/冬季时间的变化,我有这个重复的索引。直到我想通过df.to_dict(). 当我将其更改为字典时,其中一个值df['2020-10-25 02:00:00']被删除,因为字典不能有重复的键。

我正在寻找类似以下的东西,而不是硬编码,它可以在转换为字典时将这两个值存储为列表:

df.to_dict(preserve_duplicates=True)

摘要:当df转换为python字典时,有没有办法保留df的重复索引?

标签: pythonpandasdictionaryindexingduplicates

解决方案


您可以做的一件事是在将 df 转换为 dict 之前将这些值组合在一起(即到列表中):

                     value
date
2020-10-25 01:00:00      5
2020-10-25 02:00:00     10
2020-10-25 02:00:00      7


df.groupby(df.index).agg(list).to_dict()
> {'value': {'2020-10-25 01:00:00': [5], '2020-10-25 02:00:00': [10, 7]}}

agg功能可以根据您的需要灵活,您也可以进行求和或任何其他操作。


推荐阅读