如何通过列格式字典配置Pandas读取CSV的列转换规则
实现列格式配置字典化的方案
完全可以按照你的需求,把列名和对应的转换规则统一放到一个字典里管理,这样代码更整洁也更容易维护。下面是具体的实现步骤:
首先,我们定义colFormats字典,把每一列的名称和对应的转换函数一一对应:
import pandas as pd import decimal D = decimal.Decimal # 定义列格式配置字典 colFormats = { "stringCol": str, "floatCol": lambda x: D(0) if x.strip() == "" else D(x) }
这里我稍微优化了空字符串的判断(用x.strip() == ""),避免因为字符串前后有空格导致判断失误,如果你不需要这个优化,直接用x == ""也完全没问题。
接下来,在pd.read_csv()中直接引用这个字典的内容就可以了:
df = pd.read_csv( sourceFileName, usecols=list(colFormats.keys()), # 从字典中提取要读取的列名 converters=colFormats # 直接传入配置好的转换规则字典 )
这样做的好处很直观:
- 所有列的处理逻辑都集中在一个字典里,后续要添加、修改或者删除列的转换规则,只需要修改这个字典就行,不用去调整
read_csv的参数 - 代码结构更清晰,一眼就能看出哪些列需要处理,以及对应的处理规则
内容的提问来源于stack exchange,提问作者GlaceCelery
相关产品推荐
相关产品推荐

