2017-02-27 48 views
0

我有一個創建一個數據幀的功能:保存功能數據幀值字典

def function(date): 
... 
return dataframe 

現在我希望把數據框的值與該鍵是日期和數據框爲價值的字典:

d = {} 
d[date] = dataframe 

但是,每次我重新運行函數以添加新日期時,它都會添加新的日期和值,但它也會覆蓋上一個日期的值。我究竟做錯了什麼?

謝謝!

+1

請給出[mcve]。根據你寫的內容,不可能說*當前正在發生什麼,更不用說爲什麼*。 – jonrsharpe

回答

0

如果按日期鍵入字典,它們必須是唯一的,以避免覆蓋給定日期的現有值。

或者,你可以使用像這樣的日期創建值列表:

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

這將使用Python的EAFP coding style嘗試一個數據幀追加到dataframes列表給定日期。如果由於字典不包含日期鍵而引發異常,則會創建給定日期的鍵併爲其分配單個項目列表值,稍後可將該值列入其中。

0

從給出的最小信息來看,我只能假設你將一個字典放在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循環的每次迭代。