【问题标题】:Deleting cells contents of a csv file using python使用python删除csv文件的单元格内容
【发布时间】:2016-11-03 21:44:39
【问题描述】:

我有这样的逗号分隔的 csv 文件:

A,B,C,D,E
1,4,5,6,7
9,52,12,0,7
1,5,15,6,9

我想删除第 4 列的内容,而不是表头。

想要的输出如下:

A,B,C,D,E
1,4,5,,4
9,52,12,,7
1,5,15,,9

不使用 pandas 怎么办?

【问题讨论】:

  • 刚刚看到副本。不过,没有一个答案能处理标题。
  • @Jean-FrançoisFabre 我同意这一点,但是来吧,至少可以尝试重复的部分?没有任何努力的证据,如果这就是他们所苦苦挣扎的问题,那么问题的标题不会帮助其他任何人保留标题行。
  • 其实不是删除列,而是修改值。也许更容易,但不确定重复的链接(可能是其他东西的重复)
  • @Jean-FrançoisFabre 好吧,我无权决定这是否是骗局,因此由更高的权力决定。但我不考虑用空字符串填充一列而不是删除它。

标签: python excel csv module


【解决方案1】:

首先打开您的文件,将其附加到 csv 阅读器对象。

通过手动迭代csv.reader 对象来读取标题(特殊情况)。然后打开输出文件,读取输入行,删除第 4 个元素并写回输出文件中的行:

import csv

with open("input.csv") as fr:
    cr = csv.reader(fr)
    title = next(cr)
    with open("output.csv","w") as fw:  # add ,newline='' for python 3
        cw = csv.writer(fw)
        cw.writerow(title)
        for row in cr:
            row[3]=""
            cw.writerow(row)

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多