我有这个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
你能帮助我用python或PHP语言转换我的CSV吗?
答案 0 :(得分: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