作者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/cn.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