如何删除CSV文件中的列?

发布于 2021-01-29 19:24:34

我已经能够使用该站点上多个用户的输入来使用python创建一个csv,并希望对您的帖子表示感谢。我现在很困惑,将发表我的第一个问题。

我的input.csv看起来像这样:

day,month,year,lat,long
01,04,2001,45.00,120.00
02,04,2003,44.00,118.00

我正在尝试删除“年份”列及其所有条目。从1960年到2010年,总共有40多个条目。

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    import csv
    with open("source","rb") as source:
        rdr= csv.reader( source )
        with open("result","wb") as result:
            wtr= csv.writer( result )
            for r in rdr:
                wtr.writerow( (r[0], r[1], r[3], r[4]) )
    

    顺便说一句,for循环可以删除,但并没有真正简化。

            in_iter= ( (r[0], r[1], r[3], r[4]) for r in rdr )
            wtr.writerows( in_iter )
    

    同样,您可以以直截了当的方式坚持删除列的要求。我发现这通常是一个不好的策略,因为它不适用于删除多个列。当您尝试删除第二个时,您会发现所有位置都已移动并且结果行并不明显。但是仅适用于一列,这是可行的。

                del r[2]
                wtr.writerow( r )
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看