2015-08-20 77 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

你能解释一下为什么你的输出必须是在T他的命令是什么? –

+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