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

如何遍历DataFrame列名并创建以列名+指定后缀命名的列表?

解决动态生成列表名称的问题

我来帮你搞定这个问题!你的代码现在没法生成目标列表,核心有两个问题:
一是你刚把列名拼接成目标名称,立刻就把name重新赋值成了空列表,等于完全覆盖了之前的字符串;二是Python里不能直接通过字符串赋值的方式动态创建变量名。

推荐方案:用字典存储列表(更规范易维护)

动态创建零散的变量很容易让代码变得混乱,最好的做法是用一个字典来统一管理这些列表——把column+'stuck'作为字典的键,对应的空列表作为值。这样后续你可以通过键名轻松访问对应的列表,代码逻辑也更清晰。

修改后的代码如下:

import pandas as pd

# 假设dd1是你的原始DataFrame
resampled = pd.DataFrame()
resampled['RAT'] = dd1['RAT']
resampled['SAT'] = dd1['SAT']
rr = resampled - resampled.shift(1)

# 创建空字典来存储所有目标列表
stuck_lists = {}

for column in rr.columns:
    list_name = column + 'stuck'
    stuck_lists[list_name] = []  # 初始化空列表
    print(f"已创建列表: {list_name}")

# 后续访问列表的方式示例:
# stuck_lists['RATstuck'].append(xxx)
# stuck_lists['SATstuck'].extend(yyy)

如果你非要创建独立变量(不推荐)

如果你坚持要生成像RATstuck和SATstuck这样的独立全局变量,可以使用globals()函数,但这种方式会降低代码的可读性,还容易引发变量名冲突,谨慎使用:

import pandas as pd

resampled = pd.DataFrame()
resampled['RAT'] = dd1['RAT']
resampled['SAT'] = dd1['SAT']
rr = resampled - resampled.shift(1)

for column in rr.columns:
    list_name = column + 'stuck'
    globals()[list_name] = []  # 在全局命名空间中创建列表
    print(f"已创建变量: {list_name}")

# 现在你可以直接使用RATstuck和SATstuck这两个列表了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:23:45