You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于含DataFrame名称字符串的列表实现Pandas拼接?

解决存储DataFrame名称字符串列表的拼接问题

pd.concat()的参数要求是DataFrame对象的可迭代序列,你传入的是字符串列表自然会报错——字符串不是DataFrame对象,没法直接参与拼接。下面给两种可行的解决方法:

方法1:通过全局/局部命名空间获取对象

利用globals()(全局变量字典)或locals()(局部变量字典),把字符串形式的变量名转换成对应的DataFrame对象:

import pandas as pd

# 假设已定义df1、df2两个DataFrame
users_list2 = ['df1', 'df2']
# 将字符串列表转为DataFrame对象列表
df_objects = [globals()[name] for name in users_list2]
# 执行拼接
concat_result = pd.concat(df_objects)

如果是在函数内部操作,把globals()换成locals()即可。

方法2:用字典管理DataFrame(更推荐)

提前把DataFrame存入字典,通过字符串键来获取对应对象,这种方式更规范,也能避免全局变量的混乱:

import pandas as pd

# 先把DataFrame存入字典,键为对应的名称字符串
df_store = {
    'df1': df1,
    'df2': df2
}
users_list2 = ['df1', 'df2']
# 从字典中提取对象列表
df_objects = [df_store[name] for name in users_list2]
concat_result = pd.concat(df_objects)

注意事项

  • 要确保字符串列表中的每个名称,都存在对应的DataFrame变量/字典键,否则会抛出KeyError
  • 如果是在类的实例方法中,可通过self.__dict__来获取实例属性中的DataFrame对象

内容的提问来源于stack exchange,提问作者ViSa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 09:23:14