Python循环遍历列表并创建动态变量

11 浏览
0 Comments

Python循环遍历列表并创建动态变量

我正在循环遍历长度和内容不同的列表元素。这是我使用的对象(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']:
    获取所需输出(见下文)

我希望这个循环输出我可以用来识别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']
...等等。

非常感谢任何帮助。

0
0 Comments

Python循环遍历列表并创建动态变量的问题出现的原因是想要将一个DataFrame转换为字典。解决方法是使用pandas库的to_dict()函数将DataFrame转换为字典。

具体实现如下:

import pandas as pd
# 将DataFrame转换为字典
d = df.to_dict('index')

以上代码将DataFrame对象df转换为字典对象d。通过指定参数为'index',可以将每一行的索引作为字典的键。

这个方法非常有用,能够在处理数据时起到很大的帮助作用。

0