我有一个创建数据框的函数:
def function(date):
...
return dataframe
现在我想将数据帧值放入字典中,键是日期,数据帧是值:
d = {}
d[date] = dataframe
但是,每次重新运行该函数以添加新日期时,它都会添加新的日期和值,但它也会覆盖上一个日期的值。我做错了什么?
谢谢!
答案 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循环的每次迭代都会覆盖字典。