我有这样的csv文件:
F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,label
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,L1
b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,L2
我希望将列组合到文件中,如下所示:
- 对于带有标签的列组合,并将预期结果写入:
文件1:
F1,label
a1,L1
b1,L2
file2的:
F2,label
a2,L1
b2,L2
,直到
file10:
F10,label
a10,L1
b10,L2
- 对于带有标签的2列组合,并将预期结果写入:
2C_file1:
F1,F2,label
a1,a2,L1
b1,b2,L2
2C_file2:
F1,F3,label
a1,a3,L1
b1,b3,L2
,直到
45C_file45:
F9,F10,label
a9,a10,L1
b9,b10,L2
- 对于带有标签的3列组合并写入120个文件:
..... .....直到
- 对于带有标签的9列组合并写入10个文件:
- 对于带有标签的10列组合并写入1个文件:
我搜索过,我发现了一个用于与itertool进行字符串组合的python代码。 我怎么能用python代码存档上面的任务?
import itertools as iters
text='ABCDEFGHIJ'
C1= iters.combinations(text,1)
print list(C1)
C2= iters.combinations(text,2)
print list(C2)
.....
C9= iters.combinations(text,9)
print list(C9)
C10=iters.combinations(text,10)
print list(10)
答案 0 :(得分:0)
这个循环结构应该能够创建你想要的结构。必须将其更改为写入文件。这里生成的序列的长度或生成的输出的位置是您要打印到文件中的相同结构的一部分:
#!/usr/bin/env python
row1 = ["F{i}".format(i=i) for i in range(1,11)]
row1.append("label")
row2 = ["a{i}".format(i=i) for i in range(1,11)]
row2.append("L1")
row3 = ["b{i}".format(i=i) for i in range(1,11)]
row3.append("L2")
for SequenceLength in range(1, len(row1)):
for SequencePositionStart in range(len(row1)):
if row1[SequencePositionStart:SequenceLength] == []:
continue
print(','.join(row1[SequencePositionStart:SequenceLength]), row1[-1], sep=",")
print(','.join(row2[SequencePositionStart:SequenceLength]), row2[-1], sep=",")
print(','.join(row3[SequencePositionStart:SequenceLength]), row3[-1], sep=",")