¿Cómo añadir o insertar una fila en un DataFrame de Pandas?

Pandas DataFrame Añadir o insertar una fila

Para añadir o agregar una fila al DataFrame, cree la nueva fila como Serie y utilice el método «DataFrame.append()«.

En este tutorial, aprenderemos cómo añadir una fila a un DataFrame existente, con la ayuda de programas ilustrativos de ejemplo.

Sintaxis append()

La siguiente es la sintaxis de la función «DataFrame.appen()«.

midataframe = midataframe.append(nueva_fila, ignore_index=True)

donde el «DataFrame» resultante contiene «nueva_fila» añadida a «midataframe«.

«append()» es inmutable. No cambia el DataFrame, pero devuelve un nuevo DataFrame con la fila añadida.

Pandas Añadir una nueva fila a DataFrame

Ejemplo 1: Añadir una fila al DataFrame

En este ejemplo, crearemos un
«DataFrame» y añadiremos una nueva fila a este DataFrame. La nueva fila se inicializa como un diccionario de Python y se utiliza la función «append()» para añadir la fila al DataFrame.

Cuando añada un Diccionario Python a append(), asegúrese de pasar «ignore_index=True«.

El método «append()» devuelve el «DataFrame» con la nueva fila añadida.

import pandas as pd

data = {'name': ['Somu', 'Kiku', 'Amol', 'Lini'],
	'physics': [68, 74, 77, 78],
	'chemistry': [84, 56, 73, 69],
	'algebra': [78, 88, 82, 87]}

	
#crear dataframe
df_marks = pd.DataFrame(data)
print('Original DataFrame\n------------------')
print(df_marks)

nueva_fila = {'name':'Geo', 'physics':87, 'chemistry':92, 'algebra':97}

#Añadiendo una fila al dataframe
df_marks = df_marks.append(nueva_fila, ignore_index=True)

print('\n\nNueva Fila Añadida al DataFrame\n--------------------------')
print(df_marks)

Salida:

Ejecute el programa anterior de Python y verá el dataFrame original y el dataFrame con la nueva fila.

Original DataFrame
------------------
   name  physics  chemistry  algebra
0  Somu       68         84       78
1  Kiku       74         56       88
2  Amol       77         73       82
3  Lini       78         69       87


Nueva Fila Añadida al DataFrame
--------------------------     
   name  physics  chemistry  algebra
0  Somu       68         84       78
1  Kiku       74         56       88
2  Amol       77         73       82
3  Lini       78         69       87
4   Geo       87         92       97

Ejemplo 2: Añadir una fila al DataFrame de Pandas con «ignore_index = False«

Si no proporciona el parámetro «ignore_index=False«, obtendrá un «TypeError«.

En el siguiente ejemplo, intentaremos añadir una fila al DataFrame con el parámetro «ignore_index=False«.

import pandas as pd

data = {'name': ['Amol', 'Lini'],
	'physics': [77, 78],
	'chemistry': [73, 85]}

#creación del dataframe
df_marks = pd.DataFrame(data)
print('DataFrame Original\n------------------')
print(df_marks)

nueva_fila = {'name':'Geo', 'physics':87, 'chemistry':92}
#añadiendo la nueva fila al dataFrame
df_marks = df_marks.append(nueva_fila, ignore_index=False)

print('\n\nNueva Fila Añadida al DataFrame\n--------------------------')
print(df_marks)

Salida:

DataFrame Original
------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85
Traceback (most recent call last):
  File "c:\Users\srr\Desktop\prueba.py", line 14, in <module>
    df_marks = df_marks.append(nueva_fila, ignore_index=False)
  File "C:\Users\srr\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py", line 7945, in append
    raise TypeError("Can only append a dict if ignore_index=True")
TypeError: Can only append a dict if ignore_index=True

Como dice el mensaje de error, tenemos que proporcionar el parámetro «ignore_index=True» o añadir la fila, que es la Serie con un nombre.

Ya hemos visto en el Ejemplo 1, cómo añadir una fila al DataFrame con «ignore_index=True«. Ahora veremos cómo añadir una fila con «ignore_index=False«.

import pandas as pd

data = {'name': ['Amol', 'Lini'],
	'physics': [77, 78],
	'chemistry': [73, 85]}

#creando dataframe
df_marks = pd.DataFrame(data)
print('DataFrame Original\n------------------')
print(df_marks)

nueva_fila = pd.Series(data={'name':'Geo', 'physics':87, 'chemistry':92}, name='x')
#añadiendo la fila al dataframe
df_marks = df_marks.append(nueva_fila, ignore_index=False)

print('\n\nNueva fila añadida al dataFrame DataFrame\n--------------------------')
print(df_marks)

Hemos nombrado la Serie como «data«. Por lo tanto ignore_index=False no devuelve un TypeError y la fila se añade al DataFrame.

Salida:

DataFrame Original
------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85


Nueva fila añadida al dataFrame DataFrame
--------------------------
   name  physics  chemistry
0  Amol       77         73
1  Lini       78         85
x   Geo       87         92

En este tutorial de Pandas, hemos utilizado la función append() para añadir una fila a Pandas DataFrame.

Deja una respuesta