将函数数据帧值保存到字典中

时间:2017-02-27 22:29:56

标签: python dictionary dataframe

我有一个创建数据框的函数:

def function(date):
...
return dataframe

现在我想将数据帧值放入字典中,键是日期,数据帧是值:

d = {}
d[date] = dataframe

但是,每次重新运行该函数以添加新日期时,它都会添加新的日期和值,但它也会覆盖上一个日期的值。我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您按日期键入字典,则它们必须是唯一的,以避免覆盖给定日期的现有值。

或者,您可以使用以下内容创建日期值列表:

d = {}
try:
    d[date].append(dataframe)
except KeyError:
    d[date] = [dataframe]

这使用Python的EAFP coding style尝试将数据帧附加到给定日期的数据帧列表。如果由于字典没有包含日期​​键而引发异常,则它会创建给定日期的键并为其分配单项列表值,稍后可将其附加到。

答案 1 :(得分:0)

根据给出的最小信息,我只能假设你在for循环中放入一个字典。例如,

df = pd.DataFrame([[1],[2]], columns = ['A'])

for date in ['2017-02-27','2017-02-28']:
    d = {}
    d[date] = df

这将返回一个仅包含“2017”和“因为for循环的每次迭代都会覆盖字典。