Создайте отдельно numpy массивы из pandas столбцов данных - PullRequest
0 голосов
/ 17 января 2020

Я хотел бы создать автоматически в Python n из numpy массивов из моих pandas столбцов данных. Я могу сделать это вручную, например:

numpy_array_1 = data_frame.column_1.values
numpy_array_2 = data_frame.column_2.values
...
numpy_array_n = data_frame.column_n.values

Но я не могу знать, как мне написать код для автоматического создания этих массивов.

Ответы [ 3 ]

1 голос
/ 17 января 2020

Вы можете просто использовать for и l oop через него. Помните, что использование (list(data_frame)) возвращает список имен столбцов в кадре данных:

np_array = []
for i in list(data_frame):
    np_array.append(data_frame[i].values)

Ожидаемый вывод - это список, который содержит подсписки значений. Где каждый подсписок соответствует положению столбцов в кадре данных. Поэтому вы можете сделать словарь или кортеж из него. Пример словаря:

np_array_dict = {}
for i in list(data_frame):
    np_array_dict[i] = data_frame[i].values
0 голосов
/ 17 января 2020

Вы можете получить матрицу всех строк и значений столбцов данных просто, как df.values. Вам действительно нужен отдельный массив для каждого столбца?

0 голосов
/ 17 января 2020

Предположим, у нас есть простой df:

df = pd.DataFrame({"0":[1,2], "1":[3,4]})
df 
   0  1
0  1  3
1  2  4

Затем вы можете запустить:

for (key,value) in df.to_dict("list").items():
    exec("numpy_array_{} = np.array({})".format(key, value))

Вы получите:

numpy_array_0
array([1, 2])

numpy_array_1
array([3, 4])

и так далее .

В качестве альтернативы:

for col in list(df):
    exec("numpy_array_{} = df[str({})].values".format(col,col))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...