我有一個創建一個數據幀的功能:保存功能數據幀值字典
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