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 is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma