如何在python中迭代地创建具有不同名称的向量

时间:2018-02-02 10:03:01

标签: python pandas dataframe

我有pandas data.frame

temp = pd.DataFrame({'country':['C1','C1','C1','C1','C2','C2','C2','C2'],
                     'seg':    ['S1','S2','S1','S2','S1','S2','S1','S2'],
                     'agegroup':    ['1', '2', '2', '1','1', '2', '2', '1'],
                      'N' : [21,22,23,24,31,32,33,34]})

和像

这样的矢量

vector = ['country', 'seg']

我想要做的是创建两个名称为vector_countryvector_seg的向量,这两个向量将包含temp的相应列,在本例中为country列和seg

我试过了

for vec in vector:
    'vector_' + str(vec) = temp[[vec]]

所以最后我想得到两个向量:

vector_country,其中包含temp.country

vector_seg,其中包含temp.seg

是否可以在python中执行类似的操作?

1 个答案:

答案 0 :(得分:2)

不要尝试动态命名变量。这是不好的做法,会使你的代码难以处理。

更好的选择是使用字典,如下:

v = {}

for vec in ['country', 'seg']:
    v[vec] = temp[vec].values