Python 3.x 如何将值从一行/列移动到另一行/列

Python 3.x 如何将值从一行/列移动到另一行/列,python-3.x,csv,data-manipulation,Python 3.x,Csv,Data Manipulation,我试图编写一个python脚本,将数据从一个csv文件写入另一个结构不同的csv文件 我目前只能在源文件的结构中复制数据 !/usr/bin/env python3 #imports csv module import csv #opens file and reads out=open("forecast_test.csv","rb") data=csv.reader(out) with open('new_data.csv', 'w') as new_data: csv

我试图编写一个python脚本,将数据从一个csv文件写入另一个结构不同的csv文件

我目前只能在源文件的结构中复制数据

!/usr/bin/env python3
#imports csv module

import csv

#opens file and reads
out=open("forecast_test.csv","rb")
data=csv.reader(out)

with open('new_data.csv', 'w') as new_data:
        csv_writer = csv.writer(new_data)

        for line in data:
            csv_writer.writerow(line)
            print (line)
源文件的结构如下所示

 id,
123,
435,
765,
我希望我的脚本将其写入如下结构的csv文件

 id, id2, id3
123, 435, 765

我希望第一列是
id0
,而不仅仅是
id
,这样做可以避免在循环中使用if语句

导入csv
数据文件=打开('forecast\u test.csv','r')
reader=csv.reader(数据文件)
ls=[]
对于读取器中的r:
ls.append(r[0])
coltit=ls[0]
ls.pop(0)
lout=[]
lout1=[]
对于ls中的x:
lout.append(str(coltit)+str(ls.index(x)))
lout1.append(x)
打开('new_data.csv','w')作为新的_数据:
csv\u writer=csv.writer(新的\u数据)
csv_writer.writerows([lout])
csv_writer.writerows([lout1])
new_data.csv

id0,id1,id2
123,435,765

Hi Quick question尽管数组中没有5个索引,但有没有办法保持下面的格式?因此,如果源csv有2行id,但目标csv应保留其他3列id,但值将为空。@2托尼我想回答你的问题,我只需要一些澄清。对不起,我不知道你说的“格式低于偶数”是什么意思?我想您想编辑一个现有的CSV,其中第[0]行和第[1]行都有变量,现在您想在它们旁边添加更多的行?我会说看一看,但是要做
list(map(list,reader))
,这样你就只需要处理一个2D列表了。@2托尼,如果我正确理解你的问题,例如,如果你从
csv=[[id0,id1],[123312],[435543],[765576]
开始,你应该能够
csv[0]=csv[0]+[id2,id3,id4]
csv[1]=csv[1]+[454554654]
,然后正常使用写入csv即可。另外,请看一看,它可能正是您想要的。很抱歉,我忘了在“下面的格式”之后显示一个示例
源csv文件id--123 234 564
目标中的预期结果
id0 id1 id2 id3 id4 id5------123 234 564
假设id是标题,并且数字在标题下。@2tone\u tony
csv\u writer.writerows([lout1])
csv\u writer.writerows([[['','','','','','','','','','','','','','','','','','','','','''''''''''''+lout1])
。如果您需要更多帮助,请将您的代码发送给我;在个人资料上发送电子邮件。