如何为pd.read_csv()动态传递除文件路径外的多个参数
解决方案
你可以通过Python的字典关键字解包语法实现pd.read_csv()的动态多参数传入,修改后可正常运行的代码如下:
import pandas as pd filepath = r'c:\works\abcd.csv' args = {"delimiter":"|", "index_col": None} df = pd.read_csv(filepath, **args)
补充说明
- 语法原理:关键字参数解包语法(
**) 会将字典的键值对自动拆解为key=value形式的独立参数传入函数,可匹配函数对应的任意形参,该写法也适用于pandas其他函数的动态传参场景 - 原代码错误点1:直接传入
args字典会被识别为pd.read_csv()的第二个位置参数(即分隔符参数sep),不会被解析为多个独立参数 - 原代码错误点2:
index_col如果传入字符串"None",pandas会尝试查找名为"None"的列作为行索引,和传入Python空值None(表示不指定预设索引列,使用默认从零开始的整数索引)效果完全不同 - 路径优化建议:Windows系统下的本地文件路径建议添加前缀
r标记为原始字符串,避免路径中\开头的字符被识别为转义符引发路径不存在报错
内容的提问来源于stack exchange,提问作者nsr
相关产品推荐
相关产品推荐

