我已经看到了很多关于这个的问题/答案,但没有一个我看到的解决了我的问题,所以任何帮助将不胜感激。你知道吗
我有一个非常大的CSV文件,其中有一些重复的列条目,但我想一个脚本来匹配和合并行的基础上,第一列。 (我不想用熊猫。我使用的是python2.7。文件中没有CSV头)
这是输入:
2144, 2016, 505, 20005, 2007, PP, GPP, DAC, UNSW
8432, 2015, 505, 20005, 2041, LL, GLO, X2, UNSW
0055, 0.00, 0.00, 2014, 2017
2144, 0.00, 0.00, 2016, 959
8432, 22.9, 0.00, 2015, 2018
0055, 2014, 505, 20004, 2037, LL, GLO, X2, QAL
想要的输出:
2144, 0.00, 0.00, 2016, 959, 2016, 505, 20005, 2007, PP, GPP, DAC, UNSW
0055, 0.00, 0.00, 2014, 2017, 2014, 505, 20004, 2037, LL, GLO, X2, QAL
8432, 22.9, 0.00, 2015, 2018, 2015, 505, 20005, 2041, LL, GLO, X2, UNSW
我试过:
reader = csv.reader(open('input.csv))
result = {}
for row in reader:
idx = row[0]
values = row[1:]
if idx in result:
result[idx] = [result[idx][i] or v for i, v in enumerate(values)]
else:
result[idx] = values
要搜索重复项,请执行以下操作:
with open('1.csv','r') as in_file, open('2.csv','w') as out_file:
seen = set() # set for fast O(1) amortized lookup
for line in in_file:
if line in seen: continue
但是这些对我没有帮助-我迷路了
任何帮助都会很好。你知道吗
谢谢
尝试使用字典,第一列的值作为键。我会这样做:
相关问题 更多 >
编程相关推荐