如何用python删除csv文件中的某一列?代码该如何编写呢?
伊谢尔伦
伊谢尔伦 2017-04-18 09:05:20
[Python讨论组]

如何用python删除csv文件中的某一列?比如名为a.csv中的数据:

index A B C
0 1 3 5
1 2 4 6
2 7 8 9

想要删除第二列(B列)该如何删除呢?代码该如何编写呢?
求大神!万分感谢!!!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
巴扎黑

如果問題很單純,甚至連 csv 都可以不使用:

with open('old.csv') as reader, open('new.csv', 'w') as writer:
    for line in reader:
        items = line.strip().split()
        print(' '.join(items[:2]+items[3:]), file=writer)

寫個 general 的:

import csv

def del_cvs_col(fname, newfname, idxs, delimiter=' '):
    with open(fname) as csvin, open(newfname, 'w') as csvout:
        reader = csv.reader(csvin, delimiter=delimiter)
        writer = csv.writer(csvout, delimiter=delimiter)
        rows = (tuple(item for idx, item in enumerate(row) if idx not in idxs) for row in reader)
        writer.writerows(rows)

del_cvs_col('a.csv', 'b.csv', [2])

del_cvs_col 會將 fname 轉成 newfnamedelimiter 來做分割字元,且會去除掉在 idxs中指定的列。


我回答過的問題: Python-QA

ringa_lee

仅供参考,感觉好像有点问题

# coding=utf-8
import csv
origin_f = open('csv.csv', 'rb')
new_f = open('new_csv.csv', 'wb+')
reader = csv.reader(origin_f)
writer = csv.writer(new_f)
for row in reader:
    del row[-1]
    print row
    writer.writerow(row)
origin_f.close()
new_f.close()
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号