En la manipulación de datos de Pandas, agregar de manera eficiente múltiples columnas nuevas a un DataFrame puede ser una tarea que requiere una solución elegante. Si bien el enfoque intuitivo de utilizar la sintaxis de lista de columnas con un signo igual puede parecer sencillo, puede generar resultados inesperados.
Como se ilustra en el ejemplo proporcionado, la siguiente sintaxis no puede crear las nuevas columnas según lo previsto:
df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
Esto se debe a que Pandas requiere que el lado derecho de la asignación sea un DataFrame cuando se usa la sintaxis de lista de columnas. Los valores escalares o las listas no son compatibles con este enfoque.
Varios métodos alternativos ofrecen soluciones viables para agregar varias columnas simultáneamente:
Método 1: Asignaciones individuales Usando Iterator Unpacking
df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
Método 2: expandir una sola fila para que coincida con el índice
df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
Método 3: combinar con un marco de datos temporal usando pd.concat
df = pd.concat(
[
df,
pd.DataFrame(
[[np.nan, 'dogs', 3]],
index=df.index,
columns=['column_new_1', 'column_new_2', 'column_new_3']
)
], axis=1
)
Método 4: combinar con un marco de datos temporal usando .join
df = df.join(pd.DataFrame(
[[np.nan, 'dogs', 3]],
index=df.index,
columns=['column_new_1', 'column_new_2', 'column_new_3']
))
Método 5: Usar diccionario para marco de datos temporal
df = df.join(pd.DataFrame(
{
'column_new_1': np.nan,
'column_new_2': 'dogs',
'column_new_3': 3
}, index=df.index
))
Método 6: usar .assign() con argumentos de múltiples columnas
df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
Método 7: crear columnas y luego asignar valores
new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() new_cols) # add empty cols
df[new_cols] = new_vals # multi-column assignment works for existing cols
Método 8: múltiples asignaciones secuenciales
df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3
La elección del método más apropiado dependerá de factores como el tamaño del DataFrame, la cantidad de nuevas columnas que se agregarán y los requisitos de rendimiento de la tarea. No obstante, estas técnicas brindan a los usuarios de Pandas diversas opciones para agregar de manera eficiente múltiples columnas a sus DataFrames.
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