Skip to content

Agregar DataFrame Pandas: Cómo agregar filas y columnas como un profesional

Updated on

Pandas, una biblioteca de Python altamente eficiente de código abierto, es una herramienta imprescindible para los científicos de datos en todo el mundo. Su potencia radica en la flexibilidad y facilidad de manipulación de datos estructurados. El DataFrame, una de las estructuras de datos fundamentales de Pandas, se utiliza ampliamente debido a su capacidad para manejar conjuntos de datos grandes de manera eficiente.

Una tarea común mientras se trabaja con Pandas DataFrames es agregar datos. Esta operación puede implicar agregar filas, agregar columnas o incluso agregar DataFrames completos. Puede parecer muy desafiante al principio, pero una vez que domine la función de agregar, será muy fácil. Entonces, profundicemos en cómo podemos aprovechar la función de agregar DataFrame en Pandas.

¿Quieres crear rápidamente visualizaciones de datos desde Python Pandas Dataframe sin código?

PyGWalker es una biblioteca de Python para análisis exploratorio de datos con visualización. PyGWalker (opens in a new tab) puede simplificar su flujo de trabajo de análisis y visualización de datos de Jupyter Notebook, convirtiendo su DataFrame de pandas (y polars dataframe) en una Interfaz de Usuario de estilo Tableau para la exploración visual.

PyGWalker para visualización de datos (opens in a new tab)

Función de agregar DataFrame en Pandas

La función de agregación de DataFrame de Pandas se utiliza para agregar filas de otros objetos de DataFrame y devuelve un nuevo DataFrame. Es esencial comprender que esta función no altera el DataFrame original, sino que crea uno nuevo que combina los datos originales y los agregados.

Sintaxis de la función de agregar en Pandas

La sintaxis básica de la función append() es la siguiente:

DataFrame.append(other, ignore_index=False, sort=False)
  • other: Esto puede ser un DataFrame, una serie, un diccionario o una lista de estos, que define los datos a agregar.
  • ignore_index: Si es Verdadero, el índice del DataFrame resultante se etiquetará como 0, 1, ..., n. El valor predeterminado es Falso.
  • sort: Esto define si ordenar o no el eje de no concatenación. El valor predeterminado es Falso.

Veamos la función de agregar en acción a través de un ejemplo.

Agregar fila al DataFrame

import pandas as pd
 
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                    index=[0, 1, 2])
 
df2 = pd.DataFrame({'A': 'A3',
                    'B': 'B3',
                    'C': 'C3',
                    'D': 'D3'},
                    index=[3])
 
df1 = df1.append(df2)
. No traduzca los códigos que comienzan con import. Si hay una frontmatter, traduzca el contenido de la frontmatter, no los parámetros. Si hay un componente jsonld, asegúrese de traducir el contenido de json-ld también.
imprimir(df1)

En el ejemplo anterior, df1 es el DataFrame original y df2 se agrega a él. El DataFrame resultante incluirá todas las filas de df1 y df2.

Agregar múltiples DataFrames

Agregar múltiples DataFrames también es un proceso sencillo. La función append puede tomar una lista de DataFrames para agregarlos juntos. Considere el siguiente ejemplo:

df3 = pd.DataFrame({'A': 'A4',
                    'B': 'B4',
                    'C': 'C4',
                    'D': 'D4'},
                    index=[4])
 
df1 = df1.append([df2, df3])
 
imprimir(df1)

En este ejemplo, estamos agregando df2 y df3 a df1 simultáneamente.

Pandas Append de DataFrame vs Concatenación

Es posible que se pregunte acerca de la diferencia entre las funciones append() y concat() en Pandas, ya que ambas parecen tener un propósito similar. Si bien append() es esencialmente un caso específico de concat(), la función concat() proporciona más flexibilidad, como la capacidad de agregar datos a lo largo del eje de filas (eje=0) o el eje de columnas (eje=1). Esta funcionalidad más amplia significa que concat() puede ser una herramienta más poderosa para tareas de manipulación de datos más complejas. Sin embargo, para tareas simples de agregación, append() a menudo es más que suficiente.

Agregar columna a un DataFrame en Pandas

Se puede agregar una columna a un DataFrame simplemente asignando datos a una nueva columna en el DataFrame. Por ejemplo:

df1['E'] = ['E0', 'E1', 'E2', 'E3', 'E4']
imprimir(df1)

En este ejemplo, se agrega una nueva columna 'E' a df1. La nueva columna se inicializa con los valores 'E0', 'E1', 'E2', 'E3', 'E4'.

Agregar salida de bucle for a un DataFrame en Python

También se puede agregar la salida de un bucle for a un DataFrame. Esto puede ser útil en escenarios donde está procesando o generando datos en un bucle. Echemos un vistazo a un ejemplo:

df = pd.DataFrame(columns = ['A', 'B', 'C'])
 
para i en rango(5):
    df = df.append({'A': i, 'B': i*2, 'C': i+3}, ignore_index=True)
 
imprimir(df)

En este ejemplo, para cada iteración del bucle, se crea una nueva fila que se agrega al DataFrame df.

Mejores prácticas para agregar filas de DataFrame en Pandas

Si bien la función append() es una herramienta fácil de usar para agregar datos a un DataFrame, es posible que no siempre sea la más eficiente. Eso se debe a que append() siempre devuelve un nuevo DataFrame y, en el caso de agregar filas en un bucle, esto puede llevar a una significativa consumo de memoria.

En escenarios en los que necesita agregar un gran número de filas, a menudo es más eficiente crear una lista de filas y luego crear un DataFrame de una sola vez:

. No traduzca los códigos que empiezan con import. Si hay un frontmatter, traduzca el contenido en el frontmatter, no los parámetros. Si hay un componente jsonld, asegúrese de traducir también el contenido json-ld.

rows_list = []
for i in range(100000):
    dict1 = {'A': i, 'B': i*2, 'C': i+3}
    rows_list.append(dict1)
 
df = pd.DataFrame(rows_list)

En este ejemplo, el DataFrame se crea solo una vez, ahorrando memoria y tiempo de procesamiento.

Cómo fusionar DataFrames de Pandas usando append()

Mientras que las funciones merge() y join() están diseñadas específicamente para fusionar o unir DataFrames, la función append() también puede lograr esto si los DataFrames tienen las mismas columnas:

df1 = df1.append(df2, ignore_index=True)

En este ejemplo, df2 se agrega al final de df1, fusionando efectivamente los dos DataFrames.

Conclusión

En este artículo, hemos cubierto mucho terreno sobre cómo usar la función append() en Pandas para agregar filas y columnas a un DataFrame, cómo combinar varios DataFrames, cómo agregar una columna y cómo agregar la salida de un bucle for. Recuerda que aunque append() es conveniente y fácil de usar, en casos de conjuntos de datos grandes, puede haber otros métodos más eficientes.

Preguntas frecuentes

  1. ** ¿Para qué se utiliza la función de append de Pandas DataFrame? **

    La función de append de Pandas DataFrame se utiliza para agregar filas de otros objetos DataFrame al final del DataFrame dado, devolviendo un nuevo objeto DataFrame. No modifica el DataFrame original; en su lugar, crea uno nuevo que incluye los datos originales y agregados.

  2. ** ¿Se pueden agregar varios DataFrames mediante append ()? **

    Sí, se pueden agregar varios DataFrames mediante la función append (). Puede tomar una lista de DataFrames para agregar juntos.

  3. ** ¿Se recomienda usar el método de append() para agregar datos a un DataFrame? **

    Si bien la función de append() es fácil de usar y adecuada para muchos casos, para DataFrames grandes, puede que no sea el método más eficiente porque siempre devuelve un nuevo DataFrame. En su lugar, considere crear una lista de filas o columnas y luego convertir esta lista en un DataFrame de una sola vez.