Python

Pandas: Cómo crear un DataFrame vacío y agregar datos

El objeto DataFrame es uno de los elementos clave de la librería Pandas. En esta entrada vamos a ver las opciones que existen para crear un DataFrame vacío y agregar datos. Lo que nos enseñara además algunos de los métodos que existen para modificar el contenido de un DataFrame.

Creación de un DataFrame vacío

Un DataFrame vacío se puede crear utilizando el constructor DataFrame de Pandas sin ningún parámetro. Algo que nos devuelve un objeto sin columnas ni índices.

import pandas as pd

df = pd.DataFrame()
Empty DataFrame
Columns: []
Index: []

Ahora para agregar datos, solamente se tiene que asignar a una nueva serie los datos que deseemos. Por ejemplo, se puede crear un DataFrame con nombre, apellidos y géneros de unos usuarios.

df['first_name'] = ['Josy', 'Vaughn', 'Neale', 'Teirtza']
df['last_name'] = ['Clarae', 'Halegarth', 'Georgievski', 'Teirtza']
df['gender'] = ['Female', 'Male', 'Male', 'Female']
  first_name    last_name  gender
0       Josy       Clarae  Female
1     Vaughn    Halegarth    Male
2      Neale  Georgievski    Male
3    Teirtza      Teirtza  Female

Como se puede ver en el ejemplo, no es necesario definir columnas antes de usar estas, algo es muy útil cuando se desea agregar nuevas series a un DataFrame existente.

Creación de un DataFrame vacío con columnas

Quizás en la mayoría de los casos no vamos a querer partir de un DataFrame completamente vacío. Sino que ya conoceremos el nombre de las series que queremos usar en este. Así se puede crear un DataFrame vacío con columnas indicando mediante el parámetro columns los nombres de estas. Por ejemplo, para el caso anterior se puede crear.

df = pd.DataFrame(columns=['first_name', 'last_name', 'gender'])
Empty DataFrame
Columns: [first_name, last_name, gender]
Index: []

Ahora, se puede agregar registro a registro al DataFrame utilizando para ellos el método append. Un método al que es necesario pasarle un diccionario con los valores e indicar la opción ignore_index a verdadero. Así se puede agregar registros al DataFrame de la siguiente manera.

df = df.append({'first_name': 'Josy', 'last_name':'Clarae', 'gender':'Female'}, ignore_index=True)
df = df.append({'first_name': 'Vaughn', 'last_name':'Halegarth', 'gender':'Male'}, ignore_index=True)
  first_name  last_name  gender
0       Josy     Clarae  Female
1     Vaughn  Halegarth    Male

Creación de un DataFrame vacío con columnas e índices

También es posible crear un DataFrame vacío en Pandas con las columnas e índices ya asignados. En este caso todos los registros del DataFrame serán NaN, ya que no tendrán ningún valor asignado.

df = pd.DataFrame(columns=['first_name', 'last_name', 'gender'],
                  index=range(3))
  first_name last_name gender
0        NaN       NaN    NaN
1        NaN       NaN    NaN
2        NaN       NaN    NaN

En este caso la forma más fácil de asignar los registros es mediante la propiedad iloc de los DataFrames. Una propiedad con la que se puede asignar fila a fila utilizando listas o tuplas. Así se puede rellenar los datos del objeto que acabamos de crear de la siguiente manera.

df.iloc[0] = ('Josy', 'Clarae', 'Female')
df.iloc[1] = ['Vaughn', 'Halegarth', 'Male']
df.iloc[2] = ('Neale', 'Georgievski', 'Male')
  first_name    last_name  gender
0       Josy       Clarae  Female
1     Vaughn    Halegarth    Male
2      Neale  Georgievski    Male

Donde se puede ver que asignar una lista o una tupla a las filas es algo indiferente a efectos prácticos.

Conclusiones

En la entrada de hoy hemos visto cómo crear un DataFrame vacío y agregar datos en Pandas de tres modos diferentes. Creando un DataFrame vacío, un DataFrame con columnas y un DataFrame con columnas e índices. Agregando además los datos de una forma diferente en cada caso. ¿Cuál de los tres métodos os parece más adecuado? Podéis dejar vuestras opiniones en los comentarios.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

22 horas ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

2 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

6 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

This website uses cookies.