Как мне связать имя переменной pandas с именем numy-массивов? - PullRequest
0 голосов
/ 11 января 2019

У меня есть фрейм данных pandas, из которого я хочу построить некоторые матрицы, используя массивы numpy. Эти матрицы будут построены на основе переменных в фрейме данных, и я хотел бы создать их с помощью цикла по списку переменных фрейма данных. Я также хотел бы, чтобы именованные массивы были названы на основе переменной, чтобы я мог легко ссылаться на них.

Ниже приведен код, чтобы попытаться проиллюстрировать мою проблему. Я создаю фрейм данных с двумя категориальными переменными и идентификатором. Затем я создаю список 'vars' с именами переменных, которые я хотел бы зациклить. Я показываю, что мой код работает за пределами цикла (хотя созданный объект - это не панда). Закомментированная часть в конце не работает, но показывает мою попытку включить переменную строку в цикл.

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) Я просто умножаю массив панд, поэтому полученный объект не является массивом с нулевыми значениями.

2) Вопрос именования, который, как мне кажется, является здесь более важным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...