首页 > 解决方案 > 如何在csv python中交换行和删除列

问题描述

这是我的 csv 输入

,,A01.0 Брюшной тиф
0,"Тиф брюшной, Паратиф, Тиф, Паратифозная лихорадка",

我在我的代码之后得到的输出。

0,

这是我想要的,我有 11000 个这样的 csv 文件

"Тиф брюшной, Паратиф, Тиф, Паратифозная лихорадка",A01.0 Брюшной тиф
import csv

data = []
with open('/Users/gfidarov/Desktop/Python/CSV/synonims copy/syn8.csv') as inf:
    reader = csv.reader(inf)
    for row in reader:
        data.append(row)

with open('/Users/gfidarov/Desktop/Python/CSV/merged/syn.csv', 'w') as outf:
    writer = csv.writer(outf)
    writer.writerow([data[1][0], data[0][1]])

标签: pythoncsv

解决方案


问题Concat 2 行数据并写入选定列

import csv, io

CSV = """,,A01.0 Data1
0,"Sentence 1",
,,A02.0 Data2
0,"Sentence 2",
,,A03.0 Data3
0,"Sentence 3",
"""

data = []
with io.StringIO(CSV) as inf:
    data = [record for record in csv.reader(inf)]

# concat every ziped pair of 2 lists into one list
data2 = [r[0] + r[1] for r in zip(data[0::2], data[1::2])]

with io.StringIO() as out_fh:
    writer = csv.writer(out_fh)
    for rec in data2:
        # Write only Column 4 and 2
        writer.writerow((rec[4], rec[2]))

    print(out_fh.getvalue())

输出

Sentence 1,A01.0 Data1    
Sentence 2,A02.0 Data2
Sentence 3,A03.0 Data3

推荐阅读