背景
得到一个excel文件,多行之间第一列值存在重复值,其他列不重复,要求筛选第一列,并将第二列数据(同一个name的不同行)合并为一行,用分号隔开
代码
import csv
# 多行根据条件合并成同一行
def readSourceOpe(fileName):
dictNoRepeat = {}
with open(fileName, 'r', encoding='gb18030') as f:
fileContentReader = csv.reader(f)
for per in fileContentReader:
if per[0] in dictNoRepeat:
dictNoRepeat.update({per[0]: dictNoRepeat.get(per[0]) + ';' + per[4]})
else:
dictNoRepeat.update({per[0]:per[4]})
with open("merge.csv", mode="w", encoding="utf-8", newline="") as fileWr:
writer = csv.writer(fileWr)
for i in dictNoRepeat.keys():
writer.writerow([i, dictNoRepeat.get(i)])
if __name__ == '__main__':
readSourceOpe('d:\\xx\\xx.csv')
总结
使用到pyhton 的字典数据类型,使用update方法更新value值