Skip to content Skip to sidebar Skip to footer

Writing Dataframe To Csv Without Removing Commas

I want to write a pandas dataframe to csv. One of the columns of the df has entries which are lists, e.g. [1, 2], [3, 4], ... When I use df.to_csv('output.csv') and I open the out

Solution 1:

Add keyword argument 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)

Output:

"index","A","B""0","1","[11, 12]""1","2","[21, 22]""2","3","[31, 32]"

Solution 2:

df.to_csv('output.tsv', sep='\t')

Will separate the values with tabs instead of commas.

.tsv is tab separated value file

Solution 3:

I needed commas in my csv file, too. So, I tried to get it using df but in vain. I decided to do the following. I read tap-separated text file, first, and write to a csv file with commas added. Not sure this is what you exactly want, but this way you can have commas in your csv file. Hope it helps.

withopen('test.txt', newline = '') as cos:
    co_reader = csv.reader(cos, delimiter='\t')
    withopen('output.csv', 'w', newline='') as csvfile:
        cowriter = csv.writer(csvfile, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
    for co in cog_reader:
        cowriter.writerow(co)

Post a Comment for "Writing Dataframe To Csv Without Removing Commas"