我有两个文件,第一个文件名为book1.csv,如下所示:
header1,header2,header3,header4,header5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
第二个文件名为book2.csv,如下所示:
header1,header2,header3,header4,header5
1,2,3,4
1,2,3,4
1,2,3,4
我的目标是将book1.csv中包含5的列复制到book2.csv中相应的列。
我的代码的问题似乎是它没有正确地追加,也没有只选择要复制的索引。它还提供了一个错误,即我选择了一个不正确的索引位置。输出如下:
header1,header2,header3,header4,header5
1,2,3,4
1,2,3,4
1,2,3,41,2,3,4,5
这是我的代码:
import csv
with open('C:/Users/SAM/Desktop/book2.csv','a') as csvout:
write=csv.writer(csvout, delimiter=',')
with open('C:/Users/SAM/Desktop/book1.csv','rb') as csvfile1:
read=csv.reader(csvfile1, delimiter=',')
header=next(read)
for row in read:
row[5]=write.writerow(row)
我该怎么做才能正确地附加这个?
谢谢你的帮助!
尽管上面的一些代码可以工作,但它并不是真正的可伸缩性,需要一种矢量化的方法。与numpy或熊猫一起工作会使这些任务变得更容易,所以学习一点是很好的。
你可以从Pandas Website下载熊猫
像这样的怎么样。我在这两本书中都读过,将
book1
的最后一个元素附加到book2
行中,用于存储在列表中的book2
中的每一行。然后我将该列表的内容写入一个新的.csv
文件。关于“我选择了不正确的索引位置的错误”,我怀疑这是因为您在代码中使用了
row[5]
。Python中的索引从0开始,因此如果有A = [1, 2, 3, 4, 5]
,那么要得到5,就需要print(A[4])
。假设这两个文件的行数相同,并且行的顺序相同,我想您应该这样做:
相关问题 更多 >
编程相关推荐