Python函数传入CSV术语动态命名DataFrame,无需硬编码可行吗?
动态命名DataFrame的可行方案
你想通过传入的术语来命名生成的DataFrame,直接写df_{name}确实行不通,这里给你两种可行的思路,优先推荐第一种:
推荐:用字典统一管理(最规范)
用字典来存储不同术语对应的DataFrame,既清晰又好维护,不会乱改命名空间:
import pandas as pd def read_data_into_df(name): df_store = {} df_store[name] = pd.read_csv(f"file_{name}.csv") return df_store # 使用示例 data_frames = read_data_into_df("sales") # 通过键名访问对应的DataFrame print(data_frames["sales"].head())
后续要加其他术语的DataFrame,直接往字典里新增即可,管理起来特别方便。
可选:动态创建全局变量(不推荐)
如果非要生成独立的df_xxx变量,可以用globals()修改全局命名空间,但这种方式容易搞乱代码,不建议常用:
import pandas as pd def read_data_into_df(name): globals()[f"df_{name}"] = pd.read_csv(f"file_{name}.csv") # 使用示例 read_data_into_df("sales") # 直接访问生成的变量 print(df_sales.head())
这种写法会把变量塞进全局空间,万一术语和已有变量重名,还会覆盖掉原来的内容,调试起来很麻烦。
内容的提问来源于stack exchange,提问作者Kata
相关产品推荐
相关产品推荐

