如何遍历字典读取数据并将结果写入对应变量?
问题:遍历字典批量处理CSV并生成对应变量
原始信息
映射字典
mapping = {"Filename1": 999, "Filename2": "998"}
单文件处理代码
import pandas as pd read="Filename1" code=999 df=pd.read_csv(f'{read}.csv') df['new_col'] = code Filename1 = df
需求
读取指定文件名的CSV文件,添加含对应code值的新列,并将结果赋值给与文件名同名的变量,需通过遍历上述字典批量完成该流程,自动生成对应变量。
解决方案
方法1:直接生成同名全局变量
遍历字典的键值对,利用globals()函数将处理后的DataFrame直接绑定到与文件名同名的全局变量:
import pandas as pd mapping = {"Filename1": 999, "Filename2": "998"} for filename, code in mapping.items(): df = pd.read_csv(f"{filename}.csv") df['new_col'] = code globals()[filename] = df
执行后即可直接使用Filename1、Filename2变量,它们分别对应处理后的DataFrame。
方法2:用字典统一存储(更推荐)
直接生成全局变量易造成命名污染,更推荐将所有处理后的DataFrame存入一个字典,便于管理:
import pandas as pd mapping = {"Filename1": 999, "Filename2": "998"} processed_dfs = {} for filename, code in mapping.items(): df = pd.read_csv(f"{filename}.csv") df['new_col'] = code processed_dfs[filename] = df # 调用示例:processed_dfs["Filename1"]
这种方式避免了全局变量混乱,文件名较多时管理更清晰。
内容的提问来源于stack exchange,提问作者Thelonious Monk
相关产品推荐
相关产品推荐

