我有一个pandas数据框,我希望使用numpy数组从中构造一些矩阵。这些矩阵将基于数据帧中的变量构造,我想通过循环遍历数据帧变量列表来创建这些矩阵。我还希望根据变量来命名numpy数组,以便我可以轻松地引用它们。
下面是试图说明我的问题的代码。我创建了一个具有两个分类变量和一个标识符的数据框。然后,我创建一个列表“ vars”,其中包含要循环遍历的变量名称。我展示了我的代码在循环之外运行(尽管创建的对象是熊猫而不是numpy)。最后的注释部分不起作用,但是显示了我尝试在循环中包含变量字符串的情况。
import pandas as pd
import numpy as np
import random
mult_cat = [] # multiple categories
bin_cat = [] # binary categories
id = []
for i in range(0,10):
x = random.randint(0,4)
y = random.randint(0,1)
z = i+1
mult_cat.append(x)
bin_cat.append(y)
id.append(z)
data_2 = {'ID': id,
'mult_cat': mult_cat,
'bin_cat': bin_cat}
df = pd.DataFrame(data_2,
columns = ['ID', 'mult_cat', 'bin_cat'])
vars = ['mult_cat', 'bin_cat']
twice_mult_cat=2*df.mult_cat
print(mult_cat)
print(twice_mult_cat)
"""
for var in vars:
twice_var=2*df.var
print(twice_var)
"""
我相信这里至少有两个问题。
1)我只是将pandas数组相乘,因此生成的对象不是numpy数组。
2)命名问题,我认为是这里更重要的问题。