首页 > 解决方案 > 根据字母数字名称循环数据帧,并在每个数据帧中创建一列

问题描述

我有多个名为df1,df2...df100. 我想创建一个名为 file 的新列,并在每个文件中填充其文件名的值。例如。df1['file'] = 'df1' 为所有数据帧循环它。

标签: pythonpandasloops

解决方案


对可变数量的变量使用字典

显式命名可变数量的变量是不好的做法。您应该改用字典。例如,给定 100 个从文件中读取数据的数据帧:

dfs = {f : pd.read_csv(f) for f in file_paths}

通过此设置,您还可以通过以下方式轻松地将文件名包含在新系列中pd.DataFrame.assign

dfs = {f : pd.read_csv(f).assign(file=f) for f in file_paths}

推荐阅读