作者moodoa3583 (金牌台灣啤酒)
看板Python
標題[問題] 將不同長度的dic寫進csv檔
時間Tue Sep 8 23:13:56 2020
嗨大家晚安
如標題所述,假如說我有三個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://webptt.com/m.aspx?n=bbs/Python/M.1599578038.A.A5F.html
1F:推 TuCH: 不建議存成這樣的csv檔 09/09 08:15
2F:推 LP9527: 合併成矩陣 轉置 寫檔 把,,取代成, 09/09 08:25
3F:→ LP9527: 如果你的val非空 09/09 08:25
4F:推 hongyan: 把key當作col比較好吧,比較直觀 09/09 09:12
5F:→ hongyan: a_key b_key c_key 09/09 09:13
6F:→ hongyan: a_val b_val c_val 09/09 09:13
7F:→ hongyan: 最簡單的方法就是pd.Dataframe.from_dict,之後三個df 09/09 09:15
8F:→ hongyan: 之後concat一起 09/09 09:20
10F:→ hongyan: 最後轉置讓key從index變成col 09/09 09:22
11F:→ hongyan: 也可以dict都先update在一起再轉表格形式 09/09 09:26
感謝各位回覆,但這個格式是固定的先以不改格式的方式為主,另外最後只是單純要呈現而已,沒有要重複讀取利用。
※ 編輯: moodoa3583 (114.137.243.73 臺灣), 09/09/2020 09:56:16
12F:→ moodoa3583: 後來我找到的解法是把這三個 dic 先轉成 dataframe: 09/09 10:30
13F:→ moodoa3583: a_df = pd.DataFrame(a_dic.items()) 09/09 10:30
14F:→ moodoa3583: b_df = pd.DataFrame(b_dic.items()) 09/09 10:30
15F:→ moodoa3583: c_df = pd.DataFrame(c_dic.items()) 09/09 10:30
16F:→ moodoa3583: 然後再 concat 09/09 10:30
17F:→ moodoa3583: pd.concat([a_df, b_df, c_df], ignore_index=True, a 09/09 10:30
18F:→ moodoa3583: xis=1) 09/09 10:30
19F:→ moodoa3583: 如圖 09/09 10:30