[問題] 將不同長度的dic寫進csv檔

看板Python作者 (金牌台灣啤酒)時間4年前 (2020/09/08 23:13), 4年前編輯推噓3(3017)
留言20則, 4人參與, 4年前最新討論串1/2 (看更多)
嗨大家晚安 如標題所述,假如說我有三個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

09/09 08:15, 4年前 , 1F
不建議存成這樣的csv檔
09/09 08:15, 1F

09/09 08:25, 4年前 , 2F
合併成矩陣 轉置 寫檔 把,,取代成,
09/09 08:25, 2F

09/09 08:25, 4年前 , 3F
如果你的val非空
09/09 08:25, 3F

09/09 09:12, 4年前 , 4F
把key當作col比較好吧,比較直觀
09/09 09:12, 4F

09/09 09:13, 4年前 , 5F
a_key b_key c_key
09/09 09:13, 5F

09/09 09:13, 4年前 , 6F
a_val b_val c_val
09/09 09:13, 6F

09/09 09:15, 4年前 , 7F
最簡單的方法就是pd.Dataframe.from_dict,之後三個df
09/09 09:15, 7F

09/09 09:20, 4年前 , 8F
之後concat一起
09/09 09:20, 8F

09/09 09:20, 4年前 , 9F

09/09 09:22, 4年前 , 10F
最後轉置讓key從index變成col
09/09 09:22, 10F

09/09 09:26, 4年前 , 11F
也可以dict都先update在一起再轉表格形式
09/09 09:26, 11F
感謝各位回覆,但這個格式是固定的先以不改格式的方式為主,另外最後只是單純要呈現而已,沒有要重複讀取利用。 ※ 編輯: moodoa3583 (114.137.243.73 臺灣), 09/09/2020 09:56:16

09/09 10:30, 4年前 , 12F
後來我找到的解法是把這三個 dic 先轉成 dataframe:
09/09 10:30, 12F

09/09 10:30, 4年前 , 13F
a_df = pd.DataFrame(a_dic.items())
09/09 10:30, 13F

09/09 10:30, 4年前 , 14F
b_df = pd.DataFrame(b_dic.items())
09/09 10:30, 14F

09/09 10:30, 4年前 , 15F
c_df = pd.DataFrame(c_dic.items())
09/09 10:30, 15F

09/09 10:30, 4年前 , 16F
然後再 concat
09/09 10:30, 16F

09/09 10:30, 4年前 , 17F
pd.concat([a_df, b_df, c_df], ignore_index=True, a
09/09 10:30, 17F

09/09 10:30, 4年前 , 18F
xis=1)
09/09 10:30, 18F

09/09 10:30, 4年前 , 19F
如圖
09/09 10:30, 19F

09/09 10:30, 4年前 , 20F
文章代碼(AID): #1VLv-sfV (Python)
文章代碼(AID): #1VLv-sfV (Python)