将数据帧写入csv而不删除逗号

时间:2018-01-31 23:47:41

标签: python python-3.x pandas csv

我想将一个pandas数据帧写入csv。 df的一列具有作为列表的条目,例如[1,2],[3,4],......

当我使用df.to_csv(' output.csv')并打开输出csv文件时,逗号就消失了。也就是说,csv的相应列具有条目[1 2],[3 4],....

有没有办法在不删除这些列表中的逗号的情况下将数据帧写入csv?我也尝试过使用csv.writer。

3 个答案:

答案 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)