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

Python如何基于字符串列表批量筛选Pandas DataFrame生成独立子表

解决方案

首先提醒一个Python基础语法细节:Python列表为0索引,你示例中使用的lines[1]实际取到的是列表第二个元素(也就是示例里的Rafa),如果要取第一个元素John,应该使用lines[0],以下方案默认适配正确的索引对应关系,你可以根据实际需求调整序号起始值。


方案1:用字典存储筛选结果(最推荐)

动态生成独立变量不仅不利于后续批量管理,调用时也需要硬编码变量名,出错概率更高。更高效的方式是把所有筛选后的DataFrame统一存在字典中,直接通过键名调用即可:

# 初始化存储结果的空字典
name_df_dict = {}

# 遍历名字列表,start=1代表序号从1开始计数
for idx, name in enumerate(lines, start=1):
    # 增加na=False避免Identifier列有空值时出现报错
    name_df_dict[f"names_{idx}"] = Registration[Registration['Identifier'].str.contains(name, na=False)]

后续需要调用对应结果时,直接使用name_df_dict["names_1"]即可拿到第一个名字对应的筛选结果,批量遍历、增删操作都非常方便。


方案2:动态生成独立全局变量(仅满足指定需求,不推荐)

如果确实需要生成names_1、names_2这类独立的全局变量,可以通过globals()方法实现:

for idx, name in enumerate(lines, start=1):
    globals()[f"names_{idx}"] = Registration[Registration['Identifier'].str.contains(name, na=False)]

运行代码后就可以直接调用names_1、names_2这类变量使用。


内容的提问来源于stack exchange,提问作者Rafael Soler Ortuño

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:08