Один из вариантов - создать словарь на основе данных столбца 2:
from collections import defaultdict #defaultdict will save a line or two of code
d = defaultdict(list) # goal is for d to look like {'EEE':['rs001', 'rs008', ...
for line in file('data.txt', 'r'):
v, k = line.strip().split()
d[k].append(v)
for k, v in d.iteritems(): # print d as the strings you want
print ' '.join(v+[k])
Преимущество этого подхода состоит в том, что он не требует, чтобы термины столбца 2 были сгруппированы вместе (хотя вопрос о том, является ли столбец 2 предварительно сгруппированным, прямо не указан в вопросе).