【发布时间】:2019-01-28 05:06:43
【问题描述】:
我正在遍历长度和内容不同的列表元素。这是我使用的对象 (keys):
keys:
key dims
1 ['site', 'channel', 'fiscal_week']
2 ['site', 'dude', 'other', 'fiscal_week']
3 ['site', 'eng', 'dude', 'something_else', 'fiscal_week']
我有一个 for 循环,我在其中循环 keys['dims']:
for key in keys['dims']:
get desired output (see below)
我希望此循环输出可用于识别 pandas 数据框中的列的变量。例如,对于key = 1,我希望在循环期间完成:
D1 = 'site'
D2 = 'channel'
D3 = 'fiscal_week'
当我到达key = 2 时,我需要覆盖这些变量,从而产生:
D1 = 'site'
D2 = 'dude'
D3 = 'other'
D4 = 'fiscal_week'
我的最终目标是像这样使用这些变量:
df[D1]+df[D2]...
这是我失败的尝试:
for key in keys['dims']:
print key
d = {}
i = 1
for dim in key:
d['D{0}'.format(i)]=dim
print d
i +=1
这不起作用,因为它最终给出了这个输出:
['site', 'channel', 'fiscal_week']
{'D1': 'site'}
{'D2': 'channel', 'D1': 'site'}
{'D2': 'channel', 'D3': 'fiscal_week', 'D1': 'site'}
['site', 'dude', 'other', 'fiscal_week']
...etc.
非常感谢任何帮助。
【问题讨论】:
-
不要尝试创建动态变量。将值放入列表或字典中。
标签: python list pandas for-loop