Иногда вам может понадобиться добавить массив NumPy в качестве нового столбца в кадр данных pandas.
К счастью, вы можете легко сделать это, используя следующий синтаксис:
df['new_column'] = array_name. tolist ()
В этом руководстве показано несколько примеров использования этого синтаксиса на практике.
Пример 1: добавить массив NumPy в качестве нового столбца в DataFrame
В следующем коде показано, как создать кадр данных pandas для хранения некоторой статистики баскетболистов и добавить массив NumPy в качестве нового столбца с названием «блоки»:
import numpy as np
import pandas as pd
#create pandas DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#create NumPy array for 'blocks'
blocks = np.array([2, 3, 1, 0, 2, 7, 8, 2])
#add 'blocks' array as new column in DataFrame
df['blocks'] = blocks. tolist ()
#display the DataFrame
print(df)
points assists rebounds blocks
0 25 5 11 2
1 12 7 8 3
2 15 7 10 1
3 14 9 6 0
4 19 12 6 2
5 23 9 5 7
6 25 9 9 8
7 29 4 12 2
Обратите внимание, что новый DataFrame теперь имеет дополнительный столбец с названием block .
Пример 2: добавление матрицы NumPy в качестве новых столбцов в DataFrame
В следующем коде показано, как создать кадр данных pandas для хранения некоторой статистики баскетболистов и добавить массив NumPy в качестве нового столбца с названием «блоки»:
import numpy as np
import pandas as pd
#create pandas DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23
#create NumPy matrix
mat = np.matrix([[2, 3],
[1, 0],
[2, 7],
[8, 2],
[3, 4],
[7, 7],
[7, 5],
[6, 3]])
#add NumPy matrix as new columns in DataFrame
df_new = pd.concat([df, pd.DataFrame(mat)], axis= 1 )
#display new DataFrame
print(df_new)
points assists rebounds 0 1
0 25 5 11 2 3
1 12 7 8 1 0
2 15 7 10 2 7
3 14 9 6 8 2
4 19 12 6 3 4
5 23 9 5 7 7
6 25 9 9 7 5
7 29 4 12 6 3
Обратите внимание, что имена столбцов для матрицы, которые мы добавили в DataFrame, имеют имена столбцов по умолчанию 0 и 1 .
Мы можем легко переименовать эти столбцы с помощью функции df.columns :
#rename columns
df_new. columns = ['pts', 'ast', 'rebs', 'new1', 'new2']
#display DataFrame
print(df_new)
pts ast rebs new1 new2
0 25 5 11 2 3
1 12 7 8 1 0
2 15 7 10 2 7
3 14 9 6 8 2
4 19 12 6 3 4
5 23 9 5 7 7
6 25 9 9 7 5
7 29 4 12 6 3
Дополнительные ресурсы
Как сложить несколько фреймов данных Pandas
Как объединить два кадра данных Pandas в индексе
Как преобразовать Pandas DataFrame в массив NumPy
Как переименовать столбцы в Pandas