假设我有一个tab标识的.txt文件,如下所示:
我希望折叠第1-5列,以便对于给定的唯一组合(即:abcde),与该唯一组合关联的所有值(第6列;在本例中为组合abcde,相关值为显示f,g,h),同时该唯一组合仅显示一次。
这就是我想要完成的事情:
python脚本的目的是什么(如果可能的话)?
答案 0 :(得分:1)
使用Python的groupby
函数来查找前5个单元格中的更改,如下所示:
from itertools import groupby
import csv
group = 5
with open('input.txt', 'rb') as f_input, open('output.txt', 'wb') as f_output:
csv_input = csv.reader(f_input, delimiter='\t')
csv_output = csv.writer(f_output, delimiter='\t')
for k, g in groupby(csv_input, lambda x: x[:group]):
csv_output.writerow(next(g))
for row in g:
csv_output.writerow([''] * group + row[group:])
给你一个输出文件:
a b c d e f
f
g
h
1 2 3 4 5 z
y
t
注意:这假设您使用的是Python 2.x