【问题标题】:How to preserve the format when writing to csv using pandas?使用 pandas 写入 csv 时如何保留格式?
【发布时间】:2019-04-22 20:04:45
【问题描述】:

我有一个这样的文本文件:

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时如何保留格式?

【问题讨论】:

  • 那是因为你在末尾有一个逗号。

标签: python pandas


【解决方案1】:

pandas 保留格式 - 3d 行没有性别,因此 csv 应该有一个空列 - 这就是你使用逗号的原因,因为你要分隔一个空柱子。

您的原始文本文件不是有效的 csv 文件

你想做的是别的,不是写一个有效的 csv 文件——你必须自己做,我不知道任何现有的方法来创建你的格式。

【讨论】:

    【解决方案2】:

    您的代码中的问题是您的文件中的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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 2021-12-23
      • 1970-01-01
      • 2014-09-28
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多