Convertir Array de NumPy a DataFrame de Pandas

Suraj Joshi 11 marzo 2021
Convertir Array de NumPy a DataFrame de Pandas

Este tutorial explica cómo convertir un array de numpy en un DataFrame de Pandas utilizando el método pandas.DataFrame().

Pasamos el array de numpy al método pandas.DataFrame() para generar Pandas DataFrames a partir de arrays de NumPy. También podemos especificar los nombres de las columnas y los índices de las filas del DataFrame.

Convertir un Array NumPy en un DataFrame Pandas utilizando el método pandas.DataFrame()

Pasamos el array NumPy al método pandas.DataFrame() para generar el DataFrame a partir del array NumPy.

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

Producción :

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
    0   1   2
0  27  44  77
1  75  65  47
2  30  84  86
3  18   9  41

Primero crea un array aleatorio de tamaño (4,3) con 4 filas y 3 columnas. Luego pasamos el array como argumento al método pandas.DataFrame(), que genera un DataFrame llamado data_df a partir del array. Por defecto, el método pandas.DataFrame() insertará los nombres de las columnas y los índices de las filas por defecto.

También podemos establecer los nombres de las columnas y los índices de las filas utilizando los parámetros index y columns del método pandas.DataFrame().

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))
row_indices = ["Row_1", "Row_2", "Row_3", "Row_4"]
column_names = ["Column_1", "Column_2", "Column_3"]

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array, index=row_indices, columns=column_names)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

Producción :

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
       Column_1  Column_2  Column_3
Row_1        27        44        77
Row_2        75        65        47
Row_3        30        84        86
Row_4        18         9        41

Aquí, establecemos el valor de index a row_indices, una lista que contiene los índices de cada fila. Del mismo modo, asignamos los nombres de las columnas estableciendo el valor de columns a la lista column_names, que contiene el nombre de cada columna.

En algunos casos, el propio array de NumPy puede contener los índices de las filas y los nombres de las columnas. A continuación, utilizamos el corte del array para extraer los datos, los índices de las filas y los nombres de las columnas del array.

import numpy as np
import pandas as pd

marks_array = np.array(
    [["", "Mathematics", "Economics"], ["Sunny", 25, 23], ["Alice", 23, 24]]
)

print("NumPy Data Array is:")
print(marks_array)

print("")

row_indices = marks_array[1:, 0]
column_names = marks_array[0, 1:]
data_df = pd.DataFrame(
    data=np.int_(marks_array[1:, 1:]), index=row_indices, columns=column_names
)

print("The DataFrame generated from the NumPy array is:")
print(data_df)

Resultado:

NumPy Data Array is:
[['' 'Mathematics' 'Economics']
 ['Sunny' '25' '23']
 ['Alice' '23' '24']]

The DataFrame generated from the NumPy array is:
       Mathematics  Economics
Sunny           25         23
Alice           23         24

Tenemos los índices de las filas y los nombres de las columnas en el propio array de NumPy. Seleccionamos todos los valores después de la primera fila y la primera columna y lo proporcionamos como argumento data a la función pandas.DataFrame(), y seleccionamos todos los valores de la primera columna de la segunda fila y lo pasamos como argumento index. Del mismo modo, seleccionamos todos los valores de la primera fila de la segunda columna y los pasamos como argumento columns para establecer los nombres de las columnas.

El numpy.array() convertirá los valores enteros en valores de cadena al hacer el array de NumPy para asegurar el mismo formato de datos del array. Utilizamos la función numpy.int_() para convertir los valores de los datos de nuevo al tipo integer.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame