有人可以幫幫我嗎?
我有一個清單:
list = [('ac', [1, 1]), ('alex.miller', [1, 2]), ('blossom', [2, 3])]
我想將其寫入 CSV 檔案,如下所示:
交流,1,1
亞歷克斯米勒,1,2
開花,2,3
到目前為止,我嘗試過(也嘗試拆分整數串列,將其轉換為字串并將其與 row[0] 連接,但沒有成功,輸出類似于 a,c,1,1 a,l,e,x, .,m 等):
with open(r"user_statistics.csv", "a ") as csvfile_user:
writer = csv.writer(csvfile_user)
for row in list:
writer.writerow(row)
但輸出是:
ac,"[1, 1]"
alex.miller,"[1, 2]"
開花,"[2, 3]"
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您需要使用值解壓串列
writer.writerow((row[0], *row[1]))
輸出:
ac,1,1
alex.miller,1,2
blossom,2,3
作為旁注,不要使用內置list作為變數名。
uj5u.com熱心網友回復:
writerow例如,在輸入之前,您需要將您擁有的內容轉換為平面元組串列或平面串列
my_list = [('ac', [1, 1]), ('alex.miller', [1, 2]), ('blossom', [2, 3])]
my_list = [(i[0],*i[1]) for i in my_list]
print(my_list)
輸出
[('ac', 1, 1), ('alex.miller', 1, 2), ('blossom', 2, 3)]
說明:我使用list理解和引數解包將帶有 str 和 list 的元組轉換為平面元組
作為旁注:不要list用作變數名,因為它確實掩蓋了內置的list.
uj5u.com熱心網友回復:
如果使用熊貓是可以接受的,那么試試這個:
import pandas as pd
ls = [('ac', [1, 1]), ('alex.miller', [1, 2]), ('blossom', [2, 3])]
df = pd.DataFrame(ls, columns=['A', 'B'])
# split the list into new columns
df[['C','D']] = pd.DataFrame(df['B'].tolist(), index= df.index)
# drop that original list columns
df.drop('B', axis=1, inplace=True)
# finally convert to csv file
df.to_csv('mycsv.csv', index=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372815.html
