Python如何去除导入CSV文件中数字内的千位逗号分隔符
解决方案
方案1:修改现有字典转换逻辑
只需要在将元素转为整数前,先删除字符串内所有逗号即可。csv.reader已经提前完成了CSV字段拆分,你拿到的每个element里的逗号都属于数字内部的千位分隔符,不会误删元素之间的分隔逗号:
dict1_int = dict((key, [int(element.replace(',', '')) for element in value]) for key, value in dict1.items())
方案2:CSV导入阶段直接处理(更高效,无需二次遍历)
你可以在读取CSV生成字典的时候就完成格式转换,减少后续遍历开销:
import csv dict1 = {} with open('file.csv') as file: reader = csv.reader(file) next(reader, None) for rows in reader: # 直接处理对应字段,删除逗号后转整数 data = [int(rows[1].replace(',', '')), int(rows[2].replace(',', '')), int(rows[3].replace(',', ''))] dict1[rows[0]] = data
验证示例
对带千位分隔符的字符串处理效果如下:
>>> s = "2,000" >>> int(s.replace(',', '')) 2000
如果后续你的数字还可能带小数点,需要转浮点数的话,把代码里的int换成float即可。
内容的提问来源于stack exchange,提问作者Apple Juice
相关产品推荐
相关产品推荐

