2016-04-22 75 views
0

所以我想修改這個字典,我使用熊貓轉換。不過,我仍然得到錯誤消息:使用熊貓數據框通過循環向字典添加值

for key in dictionary: 
     TypeError: 'instancemethod' object is not iterable 


     i = pandas.date_range('20110101', '20151231') 
     df = pandas.DataFrame(dict(year = i.year, month = i.month, day = i.day)) 
     time_format = pandas.to_datetime(df.year*10000 + df.month*100 + df.day, format='%Y%m%d') 
     times = (time_format.to_dict) 

     def adding_to_dict(dictionary): 
      for key in dictionary: 
       dictionary[key].append(list_of_random) 
      return dictionary 

     print adding_to_dict(times) 

我曾嘗試使用短字典使用的功能,但仍沒有運氣。我正在嘗試爲這個新的時間戳字典添加值列表/元組值。任何幫助將不勝感激。謝謝你的時間

回答

0

如果你嘗試print(times)你會發現它不是一本字典。你也試圖附加到字典,這不是你如何爲字典添加值。你只是做dict[key] = value

假設你想你的輸出是{timestamp: values},這應該工作。

import pandas 
import datetime 

i = pandas.date_range('20110101', '20151231') 
df = pandas.DataFrame(dict(year=i.year, month=i.month, day=i.day)) 
time_format = pandas.to_datetime(df.year * 10000 + df.month * 100 + df.day, format='%Y%m%d') 
times = dict(time_format) 
output = {} 
def adding_to_dict(dictionary): 
    for key, value in dictionary.items(): 
     output[datetime.datetime.strftime(value, "%Y-%m-%d")] = 'whatever' 

    return output 


print adding_to_dict(times) 

輸出:

{'2013-09-08': 'whatever', '2014-01-30': 'whatever', '2012-12-03': 'whatever', '2014-03-21': 'whatever'} 
+0

這是一個很大的幫助。然而,我還想知道如何才能保留我的日期格式而不必看看時間? – user106279

+0

更新了代碼以解決您的問題。 – Chris