我有一个10列的csv文件,我想将第一个,第三个,第七个或另一组列复制到一个新的csv文件中。你能帮助我吗? 我有这个代码,但我无法对其进行转换以满足我的需求。
<code>
def selection( fr=sys.stdin, fw=sys.stdout, delim=';'):
my_reader = csv.reader(fr, delimiter=delim)
my_writer = csv.writer(fw, delimiter=delim)
to_write = [ col for col in zip(*my_reader) if col[0] == 'Nb_doc' ]
my_writer.writerows(zip(*to_write))
return
</code>
此代码仅复制名为&#39; nb_doc&#39;的列。
答案 0 :(得分:0)
也许你可以有一个你想要选择的字段名称列表,并检查列的第一个元素是否在那里:
fields = ["Nb_doc", "SomeOtherField1", "SomeOtherField2"]
然后,你的列表理解可能只需要看起来像这样:
to_write = [ col for col in zip(*my_reader) if col[0] in fields ]
答案 1 :(得分:0)
以下内容仅复制第一,第三和第七列:
colNums = [0, 2, 6]
to_write = [ col for i, col in enumerate(zip(*my_reader)) if i in colNums ]