天天看點

盤點一個Pandas寫入csv檔案的小問題

大家好,我是皮皮。

一、前言

前幾天在Python鉑金交流群【紅色基因代代傳】問了一個、Pandas處理的問題,提問截圖如下:

原始資料如下圖所示:

下面是他自己寫的代碼:

with open("relationship.csv", "w", encoding='utf_8_sig') as f:

f.write("Source,Weight\n") #按照人物、對象、發生次數也是權重,寫入代碼當中

for key, value in au_group.items():

f.write(name + "," + name + "," + str(times) + "\n") #這裡面名字被寫入二次第二次是标簽,然後逗号進行分列,str是寫成數字意思

需求澄清:他想把key裡面的二個詞分别導出CSV,上面的變量名稱,一個是source,一個是target,value的值為數字,設定為weight,形成三列。

二、實作過程

後來【瑜亮老師】和【論草莓如何成為凍幹莓】給了一個代碼,可以滿足要求,如下圖所示:

with open("relationship.csv", "w", encoding='utf_8_sig') as f:

f.write("Source,Tsrget,Weight\n")

for key, value in au_group.items():

f.write(f"{key},{value}\n")

可以順利地得到預期的結果:

後面還問了一個其他的問題,關于修改缺失值,重複值之後,将新内容進行存儲失敗的問題,下面是他的原始代碼。

後來【瑜亮老師】給了一個解決代碼,如下所示:

df[['Author-作者', 'Keyword-關鍵詞']] = df[['Author-作者', 'Keyword-關鍵詞']].applymap(lambda x: re.sub(';+', ',', x).strip(',').split(','))

df.to_csv('result_220928.csv', index=False)

順利地解決了粉絲的問題。不得不承認,群裡的大佬卧虎藏龍的,太強了!

繼續閱讀