python - 来自字符串的变量名
问题描述
这可能吗?
i = 1
for var in ['var1', 'var2', 'var3', 'var4']:
eval(var) = i
i + 1
不知何故,我想为每个循环创建一个新变量(使用新名称)。
[编辑:] 很多人说,它没用,所以下面是我想用它的实际代码:
import pandas as pd
# Convert categorical variables to dummies
PPE_WAW_DISTRICT = pd.get_dummies(X['PPE_WAW_DISTRICT'], prefix='PPE_WAW_DISTRICT')
PPE_TARIFF_TYPE = pd.get_dummies(X['PPE_TARIFF_TYPE'], prefix='PPE_TARIFF_TYPE')
PPE_OSD = pd.get_dummies(X['PPE_OSD'], prefix='PPE_OSD')
VariantProdEE = pd.get_dummies(X['VariantProdEE'], prefix='VariantProdEE')
CUS_OWNER = pd.get_dummies(X['CUS_OWNER'], prefix='CUS_OWNER')
CUS_LEGAL_FORM = pd.get_dummies(X['CUS_LEGAL_FORM'], prefix='CUS_LEGAL_FORM')
CUS_CITY = pd.get_dummies(X['CUS_CITY'], prefix='CUS_CITY')
CUS_DISTRICT = pd.get_dummies(X['CUS_DISTRICT'], prefix='CUS_DISTRICT')
X.drop(['PPE_WAW_DISTRICT', 'PPE_TARIFF_TYPE', 'PPE_OSD', 'CUS_OWNER',
'CUS_LEGAL_FORM', 'CUS_CITY', 'CUS_DISTRICT'], axis=1, inplace=True)
X = pd.concat([PPE_WAW_DISTRICT, PPE_TARIFF_TYPE, PPE_OSD, VariantProdEE,
CUS_OWNER, CUS_LEGAL_FORM, CUS_CITY, CUS_DISTRICT], axis=1)
基本上我想从每个选定的 oclumns 创建虚拟列,然后使用前缀将其添加到主数据框(X)
谢谢,马特
解决方案
你几乎肯定不想这样做,但如果出于某种原因你仍然真的想这样做,你可以这样做
i = 1
for var in ['var1', 'var2', 'var3', 'var4']:
exec(var + "=" + str(i))
i += 1
或为了紧凑,
for i, var in enumerate(['var1', 'var2', 'var3', 'var4'], 1):
exec(var + "=" + str(i))
但正如其他人所说,使用字典!
推荐阅读
- jestjs - Angular AG Grid Jest 无法读取 null 的属性(读取“注入器”)
- python - 无法在单个图形中绘制多条线
- c++ - MSVC 中的地址消毒器:为什么它在启动时报告错误?
- mongodb - 删除集合文件后无法在 CentOS 上启动 mongod 服务
- python - 烧瓶应用程序。FileNotFoundError: [Errno 2] 没有这样的文件或目录
- javascript - 在 Google Maps API 中切换标记组
- awk - 用特定值替换子字符串的 awk 命令
- css - 使用 css attr() 函数计算 sass 中的 css 顶部
- python - 模拟请求发布响应 __dict__ 和 status_code python
- r - 在 R arules 中,如何有效地将集值数据转换为项集成员数据?