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"