Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
07 Июл 2023
2 мин
1547

Как преобразовать DataFrame Pandas в массив NumPy

Иногда возникает задача преобразовать структуру данных DataFrame, предоставляемую библиотекой Pandas, в массив NumPy. Подобная потребность может возникнуть,

Иногда возникает задача преобразовать структуру данных DataFrame, предоставляемую библиотекой Pandas, в массив NumPy. Подобная потребность может возникнуть, например, при необходимости использовать функции и методы, доступные только в библиотеке NumPy, а также для оптимизации производительности в некоторых случаях.

В качестве примера возьмем DataFrame из трех столбцов и семи строк.

import numpy as np
import pandas as pd

index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')

Получившийся DataFrame выглядит следующим образом:

     A    B    C
ID               
1  NaN  0.2  NaN
2  NaN  NaN  0.5
3  NaN  0.2  0.5
4  0.1  0.2  NaN
5  0.1  0.2  0.5
6  0.1  NaN  0.5
7  0.1  NaN  NaN

Теперь предположим, что необходимо преобразовать данный DataFrame в массив NumPy.

Для преобразования DataFrame в массив NumPy используется метод .values или функция to_numpy().

np_array = df.values

или

np_array = df.to_numpy()

Оба варианта возвращают массив NumPy, который выглядит следующим образом:

array([[ nan,  0.2,  nan],
       [ nan,  nan,  0.5],
       [ nan,  0.2,  0.5],
       [ 0.1,  0.2,  nan],
       [ 0.1,  0.2,  0.5],
       [ 0.1,  nan,  0.5],
       [ 0.1,  nan,  nan]])

Также стоит упомянуть, что при преобразовании DataFrame в массив NumPy типы данных столбцов DataFrame сохраняются. Если в DataFrame есть столбцы разных типов, то NumPy массив будет иметь соответствующий сложный тип данных.

Добавить комментарий

Подарок
Забрать подарок