如何将CSV文件中含逗号的Col3列数值读取为整数?
解决CSV带千分位逗号的列转整数问题
我完全懂你的困扰——这种带千分位分隔符的数值确实会让直接转换整数失败,而且不能修改源文件的话,就得在读取环节动手处理。下面给你几个实用的解决方案,都不用改动原CSV文件:
方案一:手动清除逗号(基础易用版)
如果用Python内置的csv模块读取,你可以在拿到每一行的Col3值后,先把逗号去掉再转成整数:
import csv result_tuple = () with open('你的文件.csv', 'r', newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: # 移除字符串里的逗号,再转换为整数 cleaned_value = int(row['Col3'].replace(',', '')) result_tuple += (cleaned_value,) print(result_tuple)
方案二:用locale模块解析(适配通用千分位格式)
如果你的CSV数值格式和系统区域设置匹配(比如英文体系的千分位逗号),用locale模块会更灵活,能兼容更多数值格式:
import csv import locale # 设置区域为英文(适配千分位逗号规则) # Windows系统可以换成'English_US',Linux/macOS用'en_US.UTF-8'即可 locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') result_tuple = () with open('你的文件.csv', 'r', newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: # 用locale的方法直接解析带千分位的字符串 parsed_value = locale.atoi(row['Col3']) result_tuple += (parsed_value,) print(result_tuple)
方案三:用pandas处理(适合大数据量场景)
如果你的数据量较大,用pandas会更高效,它自带处理千分位数值的参数,一步就能完成解析:
import pandas as pd # 读取时指定thousands参数为逗号,自动将Col3解析为数值类型 df = pd.read_csv('你的文件.csv', thousands=',') # 将Col3列转为整数后再转成tuple result_tuple = tuple(df['Col3'].astype(int)) print(result_tuple)
你可以根据自己的代码环境和数据规模,选最适合的方案来解决问题~
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

