我需要能够通过重复id来运行csv,并在每个id的一行输出带有非重复值的id。一直在尝试使用pandas来阅读csv。
我有什么:
Id, Bin
1, a1
1, a2
1, b2
2, a4
2, a5
2, b4
2, b5
我想要的是什么:
Id, Bin
1, a1, a2, b2
2, a4, a5, b4, b5
答案 0 :(得分:1)
我认为您的输入文件名为id_input.csv
。
因此,在我的解决方案中,我将使用groupby
模块中的itertools
,例如:
id_input.csv:
Id, Bin
1, a1
1, a2
1, b2
2, a4
2, a5
2, b4
2, b5
脚本将打印您想要的输出:
from itertools import groupby
data = list(k.replace("\n", "").strip().split(",") for k in open("id_input.csv", 'r'))
for key, val in groupby(data, lambda x : x[0]):
if key != "Id":
print("%s, %s" %(key, ",".join(k[1] for k in list(val))))
输出:
1, a1, a2, b2
2, a4, a5, b4, b5