如何用Python遍历CSV行并导出各单元格数据类型至CSV
遍历CSV文件并导出各单元格数据类型的最佳方法
你的现有脚本仅完成了CSV读取和转字典的操作,还未实现遍历单元格检测类型并导出的功能。基于pandas的最佳实现方式如下:
基础版本(直接获取原生数据类型)
import pandas as pd # 读取原始CSV,使用原始字符串避免Windows路径转义问题 df = pd.read_csv(r"C:\Users\Sridhar\Downloads\Leads.csv") # 对每个单元格应用类型检测,生成存储类型信息的DataFrame type_df = df.applymap(lambda cell: type(cell).__name__) # 将结果导出为新的CSV文件,index=False不写入行索引 type_df.to_csv(r"C:\Users\Sridhar\Downloads\Leads_Data_Types.csv", index=False)
进阶版本(更细致的类型识别)
如果需要区分空值、数字形式的字符串等场景,可以自定义类型检测函数:
import pandas as pd def get_precise_type(cell): # 优先识别空值 if pd.isna(cell): return "NaN/Null" # 识别字符串类型,同时判断是否为数字格式的字符串 elif isinstance(cell, str): try: float(cell) return "numeric_string" except ValueError: return "string" # 区分整数和浮点数 elif isinstance(cell, int): return "integer" elif isinstance(cell, float): return "float" # 其他类型直接返回类名 else: return type(cell).__name__ df = pd.read_csv(r"C:\Users\Sridhar\Downloads\Leads.csv") type_df = df.applymap(get_precise_type) type_df.to_csv(r"C:\Users\Sridhar\Downloads\Leads_Precise_Types.csv", index=False)
关键说明
applymap()是pandas中用于对DataFrame每个单元格批量处理的方法,效率远高于手动逐行遍历。- 路径使用原始字符串(前缀
r)可以避免Windows系统中反斜杠被解析为转义字符的问题。 to_csv()的index=False参数可以防止把pandas的行索引写入输出文件,保持结果CSV的结构和原文件一致。
内容的提问来源于stack exchange,提问作者sridharnetha
相关产品推荐
相关产品推荐

