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

Python:如何无需逐个输入字符串即可按行业批量筛选DataFrame列

解决方案

推荐优先用字典存储各行业的独立DataFrame,80+行业不需要单独声明变量,调用、遍历都更方便,两种实现方式可选:

方式1:groupby 字典推导式(最简写法)

一行代码即可完成所有行业的拆分,性能优于手动循环过滤:

industry_dfs = {industry: df[['Value']].copy() for industry, df in data.groupby('MacrIndustry')}

调用时直接取字典键即可,效果和你手动生成的HighTech变量完全一致:
high_tech_df = industry_dfs['High Technology']

方式2:for 循环实现(逻辑更直观)

如果需要在拆分时增加额外的处理逻辑,可以用显式循环:

# 初始化空字典存储结果
industry_dfs = {}
# 遍历所有唯一行业值
for ind in data['MacrIndustry'].unique():
    industry_dfs[ind] = data.loc[data['MacrIndustry'] == ind, ['Value']].copy()

如果你确实需要将每个行业的数据存为独立的全局变量(不推荐,变量过多不好管理),可以借助globals()实现:

for ind in data['MacrIndustry'].unique():
    # 把行业名称里的空格替换为下划线,符合Python变量命名规范
    var_name = ind.replace(' ', '_')
    globals()[var_name] = data.loc[data['MacrIndustry'] == ind, ['Value']].copy()

生成后可以直接通过变量名High_Technology调用对应行业的数据。

注:代码里加.copy()是为了避免后续修改拆分后的小数据集时联动修改原始数据集,不需要可删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:04