如何将带有不同长度行(实际上最多12行)的CSV文件作为输入,然后输出新的CSV文件,其中新行包含 每行的第0个元素+每个唯一的元素对(> 0)按字母顺序排列?
原始行元素不按字母顺序排列。
请参阅图像,例如输入和输出。 enter image description here
答案 0 :(得分:1)
您可以使用csv
进行阅读和阅读写作和itertools.combinations
用于生成对:
import csv
from itertools import combinations
with open('input.csv') as in_f, open('output.csv', 'w') as out_f:
reader = csv.reader(in_f)
writer = csv.writer(out_f)
for row in reader:
for combination in combinations(sorted(row[1:]), 2):
writer.writerow(tuple(row[:1]) + combination)
输出:
0,A,B
1,A,B
1,A,C
1,B,C
2,A,B
2,A,C
2,A,D
2,B,C
2,B,D
2,C,D