Python 将特定列从csv文件复制到特定位置的另一个csv

Python 将特定列从csv文件复制到特定位置的另一个csv,python,csv,copy,Python,Csv,Copy,我在Python2.7中尝试了在本论坛上看到的不同方法,用于将特定列从csv文件复制到特定位置(列)的另一个csv文件 因此,我想将列标题2复制到列标题6上,结果如下 csv2: Header5 Header2 Header7 5 2 7 5 2 7 5 2 7 2 每个标题位于不同的单元格中。我尝试了以下操作(甚至制作了第三个文件),但没有成功: with open('book1.csv', 'r') a

我在Python2.7中尝试了在本论坛上看到的不同方法,用于将特定列从csv文件复制到特定位置(列)的另一个csv文件

因此,我想将列标题2复制到列标题6上,结果如下

csv2:
Header5 Header2 Header7
5       2       7
5       2       7
5       2       7
        2
每个标题位于不同的单元格中。我尝试了以下操作(甚至制作了第三个文件),但没有成功:

with open('book1.csv', 'r') as book1:
    with open('book2.csv', 'r') as book2:
        reader1 = csv.reader(book1, delimiter=',')
        reader2 = csv.reader(book2, delimiter=',')

        both = []
        fields = reader1.next() # read header row
        reader2.next() # read and ignore header row
        for row1, row2 in zip(reader1, reader2):
            row2.append(row1[-1])
            both.append(row2)

        with open('output.csv', 'w') as output:
            writer = csv.writer(output, delimiter=',')
            writer.writerow(fields) # write a header row
            writer.writerows(both)

有什么想法吗?:)

要追加的列表将水平追加。该行无法知道要追加到其上的下一项是属于相邻列还是多个列

解决这个问题的方法是用最大值(所有列中的最大列长度)标识标题列的长度

在所需的“csv2”输出中,与其他标题(3个值)相比,标题2在其列中的值(4个值)最多

您要做的是确保所有其他标题的长度等于最大长度(4个值)


您可以不断地向每列添加一个不相关的项,以便为下一列完全留出空间。可以垂直附加到底部短列的示例项可以是空字符串值(“”)、不适用的字符串值(“NA”)或类似于0的数字,您不希望在任何数据集列中显示为整数

要追加的列表将水平追加。该行无法知道要追加到其上的下一项是属于相邻列还是多个列

解决这个问题的方法是用最大值(所有列中的最大列长度)标识标题列的长度

在所需的“csv2”输出中,与其他标题(3个值)相比,标题2在其列中的值(4个值)最多

您要做的是确保所有其他标题的长度等于最大长度(4个值)

您可以不断地向每列添加一个不相关的项,以便为下一列完全留出空间。可以垂直附加到底部短列的示例项可以是空字符串值(“”)、不适用的字符串值(“NA”)或类似于0的数字,您不希望在任何数据集列中显示为整数

试试以下方法:

        for row1, row2 in zip(reader1, reader2):
            newRow = str(row1[0])+","+str(row1[1])+","+str(row1[2])
            both.append(row2)
此外,我建议您不要复制其他代码并将其粘贴为解决方案。我建议您至少尝试执行部分代码并寻求帮助。如果您不添加任何代码也没关系,但是如果您不尝试您提供的代码,可能会让人困惑,他们也帮不了您

试试以下方法:

        for row1, row2 in zip(reader1, reader2):
            newRow = str(row1[0])+","+str(row1[1])+","+str(row1[2])
            both.append(row2)
此外,我建议您不要复制其他代码并将其粘贴为解决方案。我建议您至少尝试执行部分代码并寻求帮助。如果您不添加任何代码也没关系,但是如果您不尝试您提供的代码,可能会让人困惑,他们也帮不了您