2015-08-20 6 views
-1

у меня есть этот CSVСплит CSV в группы на основе значения

idSensor,ReadData 
1010,1459 
1010,1477 
1011,1307 
1011,1183 
1012,1050 
1012,1015 
1013,575 
1013,474 

И я хочу, чтобы преобразовать этот CSV в этом:

1010,1011,1012,1013 
1459,1307,1050,575 
1477,1183,1015,474 

Можете ли вы, ребята, помочь мне превратить мой CSV в Python или Язык PHP?

+1

Можете ли вы объяснить, почему ваш выход должен быть в т его порядок точно? –

+1

Это не подходящий вопрос для этого сайта; SO не является кодовым письмом. Вы можете отправить свою попытку решить проблему и задать вопросы о проблемах, возникающих с вашим кодом. – saulspatz

+0

Результат должен быть в этом порядке, потому что я хочу импортировать csv в HighCharts. –

ответ

0

Решения для Python 2 и Python 3.

Используйте OrderedDict сгруппировать строки по значению в первом столбце, а затем некоторые умные zipping ключей словаря в и значениях для получения требуемого формата:

data = [s.split(',') for s in '''1010,1459 
      1010,1477 
      1011,1307 
      1011,1183 
      1012,1050 
      1012,1015 
      1013,575 
      1013,474'''.split()] 

from collections import OrderedDict 
d = OrderedDict() 
for key, value in data: 
    d[key] = d.get(key, []) + [value] 

grouped_data = [row for row in zip(*[[k]+v for k,v in d.items()])] 
for row in grouped_data: 
    print(','.join(row)) 

выход

 
1010,1011,1012,1013 
1459,1307,1050,575 
1477,1183,1015,474 
Смежные вопросы