首页 > 解决方案 > 如何将值从一个移动到另一行/列

问题描述

我正在尝试编写一个 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

标签: python-3.xcsvdata-manipulation

解决方案


id0我希望第一列不只是没关系id,但这样做可以节省循环中 if 语句的需要。

import csv

datafile=open('forecast_test.csv', 'r')
reader = csv.reader(datafile)

ls=[]
for r in reader:
    ls.append(r[0])

coltit=ls[0]

ls.pop(0)

lout=[]
lout1=[]
for x in ls:
    lout.append(str(coltit)+str(ls.index(x)))
    lout1.append(x)

with open('new_data.csv', 'w') as new_data:
    csv_writer = csv.writer(new_data)
    csv_writer.writerows([lout])
    csv_writer.writerows([lout1])

新数据.csv

id0,id1,id2
123,435,765

推荐阅读