我想将一个pandas数据帧写入csv。 df的一列具有作为列表的条目,例如[1,2],[3,4],......
当我使用df.to_csv(' output.csv')并打开输出csv文件时,逗号就消失了。也就是说,csv的相应列具有条目[1 2],[3 4],....
有没有办法在不删除这些列表中的逗号的情况下将数据帧写入csv?我也尝试过使用csv.writer。
答案 0 :(得分:3)
添加关键字参数quoting=csv.QUOTE_ALL
:
import csv
import pandas as pd
data = {"A": [1,2,3], "B": [[11,12],[21,22],[31,32]]}
df = pd.DataFrame(data)
df.index.name='index'
# df
# A B
# index
# 0 1 [11, 12]
# 1 2 [21, 22]
# 2 3 [31, 32]
df.to_csv('test.csv',quoting=csv.QUOTE_ALL)
"index","A","B"
"0","1","[11, 12]"
"1","2","[21, 22]"
"2","3","[31, 32]"
答案 1 :(得分:2)
df.to_csv('output.tsv', sep='\t')
将使用制表符而不是逗号分隔值。
.tsv是制表符分隔值文件
答案 2 :(得分:0)
我的csv文件中也需要逗号。因此,我尝试使用df来获取它,但徒劳。我决定执行以下操作。 首先,我读取分头分隔的文本文件,然后将其添加到带有逗号的csv文件中。 不确定这是否是您真正想要的,但是这样您可以在csv文件中使用逗号。希望对您有所帮助。
with open('test.txt', newline = '') as cos:
co_reader = csv.reader(cos, delimiter='\t')
with open('output.csv', 'w', newline='') as csvfile:
cowriter = csv.writer(csvfile, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for co in cog_reader:
cowriter.writerow(co)