我有一个创建一个数据帧的功能:保存功能数据帧值字典
def function(date):
...
return dataframe
现在我希望把数据框的值与该键是日期和数据框为价值的字典:
d = {}
d[date] = dataframe
但是,每次我重新运行函数以添加新日期时,它都会添加新的日期和值,但它也会覆盖上一个日期的值。我究竟做错了什么?
谢谢!
我有一个创建一个数据帧的功能:保存功能数据帧值字典
def function(date):
...
return dataframe
现在我希望把数据框的值与该键是日期和数据框为价值的字典:
d = {}
d[date] = dataframe
但是,每次我重新运行函数以添加新日期时,它都会添加新的日期和值,但它也会覆盖上一个日期的值。我究竟做错了什么?
谢谢!
如果按日期键入字典,它们必须是唯一的,以避免覆盖给定日期的现有值。
或者,你可以使用像这样的日期创建值列表:
d = {}
try:
d[date].append(dataframe)
except KeyError:
d[date] = [dataframe]
这将使用Python的EAFP coding style尝试一个数据帧追加到dataframes列表给定日期。如果由于字典不包含日期键而引发异常,则会创建给定日期的键并为其分配单个项目列表值,稍后可将该值列入其中。
从给出的最小信息来看,我只能假设你将一个字典放在for循环中。例如,
df = pd.DataFrame([[1],[2]], columns = ['A'])
for date in ['2017-02-27','2017-02-28']:
d = {}
d[date] = df
这将返回一个字典,其中只包含'2017-02-28'的数据,因为词典正在覆盖for循环的每次迭代。
请给出[mcve]。根据你写的内容,不可能说*当前正在发生什么,更不用说为什么*。 – jonrsharpe