我有一个像这样的文本文件:
id,name,sex,
1,Sam,M,
2,Ann,F,
3,Peter,
4,Ben,M,
然后,我读取了文件: df = pd.read_csv('data.csv')
然后,我将其写入另一个文件: df.to_csv('new_data.csv',index = False)
然后,我得到
id,name,sex,Unnamed: 3
1,Sam,M,
2,Ann,F,
3,Peter,,
4,Ben,M,
您看到第四行有两个逗号而不是一个逗号。
使用pd.to_csv
时如何保留格式?
答案 0 :(得分:1)
pandas
保留格式-3d行没有性别,因此csv应该有一个空列-这就是为什么要逗号的原因,因为您要分隔一个空列。
您的原始文本文件不是有效的csv文件。
您想要做的是其他事情,它不是编写有效的csv文件-您将必须自己做,我不知道创建格式的任何现有方法。
答案 1 :(得分:1)
代码中的问题是文件中的sex
列后面有一个逗号。因此read_csv认为这是一个新列,没有名称和数据。
df= pd.read_csv('data.csv')
df
id name sex Unnamed: 3
0 1 Sam M NaN
1 2 Ann F NaN
2 3 Peter NaN NaN
3 4 Ben M NaN
因此,您还有一个未命名列。因此,当您编写to_csv时,它在第三行中添加了两个空值,并因此添加了两个,
。
尝试:
df = pd.read_csv('data.csv', use_cols = ['id', 'name', 'sex'])
df.to_csv('new_data.csv', index = False)