"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo agregar eficientemente una nueva columna a un Pandas DataFrame?

¿Cómo puedo agregar eficientemente una nueva columna a un Pandas DataFrame?

Publicado el 2025-03-04
Navegar:227

How Can I Efficiently Add a New Column to a Pandas DataFrame?

agregando una nueva columna a un DataFrame existente

Cuando se trabaja con Pandas DataFrames, a menudo se hace necesario agregar nuevas columnas a DataFrames existentes. Hay múltiples enfoques para lograr esto, cada uno con sus propias ventajas y inconvenientes.

1. Usando asignar (recomendado para pandas 0.17 y arriba):

import pandas as pd
import numpy as np

# Generate a sample DataFrame
df1 = pd.DataFrame({
    'a': [0.671399, 0.446172, 0.614758],
    'b': [0.101208, -0.243316, 0.075793],
    'c': [-0.181532, 0.051767, -0.451460],
    'd': [0.241273, 1.577318, -0.012493]
})

# Add a new column 'e' with random values
sLength = len(df1['a'])
df1 = df1.assign(e=pd.Series(np.random.randn(sLength)).values)

2. Usando loc [row_index, col_indexer] = valor:

# Add a new column 'f' using loc
df1.loc[:, 'f'] = pd.Series(np.random.randn(sLength), index=df1.index)

3. Usando df [new_column_name] = pd.series (valores, index = df.index):

# Add a new column 'g' using the old method
df1['g'] = pd.Series(np.random.randn(sLength), index=df1.index)

Recuerde que el último método puede desencadenar el settingwithCopyWarning en versiones más recientes de PANDAS. El uso de Asign o LOC generalmente se recomienda para obtener eficiencia y claridad.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3