转置CSV行和列

时间:2018-09-24 18:47:30

标签: python

对于学习Python(使用v3)并尝试做我怀疑可以用一个程序完成的两件事,我是一个新手。

第一部分如下:

假定csv文件1有6列乘以数千行,但是每10行的组需要放入一个新行,实际上将有60列。

例如Input1.csv是:

Id,名称,text1,text2,text3,text4,唯一代码 ID,名称,文本1,文本2,文本4,文本4,唯一代码

(某些ID是重复的 输出1必须为:

唯一ID,名称,text1,text2,text3,text4,text5,唯一ID2,名称,text1,text2,text3 ...(60列),然后移至row2 ...

我正在使用此代码开始(但有其他想法可做):

导入csv

使用open('Input1.csv','r',encoding ='utf-8-sig',errors ='ignore')作为文件内文件,open('Output1.csv','w',encoding =' utf-8-sig')作为输出文件:

fieldnames = ['id', 'text1', 'text2', 'text3', 'text4', 'text5']
writer = csv.DictWriter(outfile, fieldnames=fieldnames)
writer.writeheader()
for i in range (0,5):
    for row in csv.DictReader(infile):
        for j in range (0,9):
            for column in csv.DictReader(infile):
                writer.writerow(column)

我试图遍历6列,然后遍历10行,然后将每行输出为60列...

跟踪显示:

回溯(最近通话最近):   文件“ C:/Users/marc/PycharmProjects/first/Convert1.py”,第12行     writer.writerow(列)   在写入行中的文件“ C:\ Users \ marc \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ csv.py”,行155     返回self.writer.writerow(self._dict_to_list(rowdict))   文件“ C:\ Users \ marc \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ csv.py”,第151行,位于_dict_to_list中     +“,” .join([[repr(x)for mis_fields中的x]])

第2部分将把新的csv添加到另一个csv中,将这些列作为一个组插入到特定位置,并可能重新排列这些列(我正在用字段名对上面的列进行重新排列。

0 个答案:

没有答案