看板 Python 關於我們 聯絡資訊
嗨大家晚安 如標題所述,假如說我有三個dic a_dic = {"a" : "xxx", "b" : "yyy"} b_dic = {"c" : "zzz", "d" : "vvv", "e" : "ttt"} c_dic = {"f" : "uuu"} 如果我今天要把他們寫進一個csv檔,如下 a_key a_value b_key b_value c_key c_value a xxx c zzz f uuu b yyy d vvv e ttt 不足的長度留空 想問有甚麼好方法嗎?我目前只想到個別寫一個 csv 檔後再手動 merge 在一起, 但應該有更聰明方便的方法才是。 還請各位提供我關鍵字讓我有個方向,謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.117.189 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1599578038.A.A5F.html
TuCH: 不建議存成這樣的csv檔 09/09 08:15
LP9527: 合併成矩陣 轉置 寫檔 把,,取代成, 09/09 08:25
LP9527: 如果你的val非空 09/09 08:25
hongyan: 把key當作col比較好吧,比較直觀 09/09 09:12
hongyan: a_key b_key c_key 09/09 09:13
hongyan: a_val b_val c_val 09/09 09:13
hongyan: 最簡單的方法就是pd.Dataframe.from_dict,之後三個df 09/09 09:15
hongyan: 之後concat一起 09/09 09:20
hongyan: https://i.imgur.com/drBkgiY.jpg 09/09 09:20
hongyan: 最後轉置讓key從index變成col 09/09 09:22
hongyan: 也可以dict都先update在一起再轉表格形式 09/09 09:26
感謝各位回覆,但這個格式是固定的先以不改格式的方式為主,另外最後只是單純要呈現而已,沒有要重複讀取利用。 ※ 編輯: moodoa3583 (114.137.243.73 臺灣), 09/09/2020 09:56:16
moodoa3583: 後來我找到的解法是把這三個 dic 先轉成 dataframe: 09/09 10:30
moodoa3583: a_df = pd.DataFrame(a_dic.items()) 09/09 10:30
moodoa3583: b_df = pd.DataFrame(b_dic.items()) 09/09 10:30
moodoa3583: c_df = pd.DataFrame(c_dic.items()) 09/09 10:30
moodoa3583: 然後再 concat 09/09 10:30
moodoa3583: pd.concat([a_df, b_df, c_df], ignore_index=True, a 09/09 10:30
moodoa3583: xis=1) 09/09 10:30
moodoa3583: 如圖 09/09 10:30
moodoa3583: http://i.imgur.com/8RFjFoj.jpg 09/09 10:30