使用Python 2.7。在CSV中查找詞典關鍵匹配並將值寫入下一列
我每天早上運行一個函數,用鍵和值創建一個輸出字典。輸出字典結果是這樣的:
'約翰':1
'傑克':5
'露西':235
'莎拉':33
我再打開現有的CSV文件具有像這樣的列/行:
名稱17年1月1日17年1月2日
約翰5 88
傑克31 34
薩拉45 12
Lucy 77 57
其中A列標題始終爲Name且每個連續列標題爲列中數據的日期。
我想寫,將一個函數:
打開CSV, 寫入到CSV 追加日至下一個可用的列標題(即第1行) 然後 發現在重點CSV的關鍵在我的字典 一致追加值從字典中CSV
下一個公開欄用我上面的例子,然後
名稱17年1月1日17年1月2日
約翰5 88
傑克31 34
薩拉45 12
露77 57
變成
名稱17年1月1日17年1月2日17年1月3日
約翰5 88 1
傑克31 34 5
薩拉45 12 33
露西77 57 235
我已經非常接近我試圖用下面的代碼做的事:
import pandas as pd
import datetime
starter_df = pd.read_csv('keyword_results.csv', names = ['Keyword'])
#dictionary created by function
test_dic = {"John": 12, "Jake": 45, "Sarah": 31, "Lucy": 18}
now = datetime.datetime.now()
str_date = now.strftime("%m %d %Y")
starter_df[str_date] = starter_df["Keyword"].map(test_dic)
starter_df.to_csv('keyword_results.csv')
我正在將csv讀入一個數據幀,嘗試將新列映射到數據幀,然後將數據幀輸出到csv。
問題是,這是將日期寫入新列,但沒有下面的數據。
我很茫然,感謝您的幫助。我還是Python的新手。
我試圖用這個,但我得到了以下錯誤:KeyError異常:「名稱」 – tulanejosh
「**姓名**」是根據你所提到的名字您現有的CSV的列名(列A) (約翰,傑克,薩拉,露西)。 – Shadkhan
如果您的csv的第一列總是會成爲一個名稱,您也可以執行** starter_df [str_date] = starter_df.ix [:,0] .map(lambda x:test_dic [x])** – Shadkhan