如何用python删除csv文件中的某一列?代码该如何编写呢?
伊谢尔伦
伊谢尔伦 2017-04-18 09:05:20
0
2
696

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

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

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

伊谢尔伦
伊谢尔伦

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

reply all (2)
巴扎黑

If the question is very simple, you don’t even need to usecsv:

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)

Write a 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])
The column specified in

del_cvs_col會將fname轉成newfnamedelimiter來做分割字元,且會去除掉在idxs.


Questions I answered: Python-QA

    左手右手慢动作

    For reference only, I feel like there is something wrong

    # 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()
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!