cómo reemplazar una columna entera en Pandas.DataFrame

Me gustaría reemplazar una columna completa en un DataFrame de Pandas con otra columna tomada de otro DataFrame, un ejemplo aclarará lo que estoy buscando

import pandas as pd dic = {'A': [1, 4, 1, 4], 'B': [9, 2, 5, 3], 'C': [0, 0, 5, 3]} df = pd.DataFrame(dic) 

df es

 'A' 'B' 'C' 1 9 0 4 2 0 1 5 5 4 3 3 

Ahora tengo otro dataframe llamado df1 con una columna “E” que es

 df1['E'] = [ 4, 4, 4, 0] 

y me gustaría reemplazar la columna “B” de df con la columna “E” de df1

 'A' 'E' 'C' 1 4 0 4 4 0 1 4 5 4 0 3 

Intenté usar el método .replace () de muchas maneras, pero no obtuve nada bueno. ¿Me puedes ayudar?

Si los índices coinciden entonces:

 df['B'] = df1['E'] 

debería funcionar de otra manera:

 df['B'] = df1['E'].values 

Trabajará siempre que la longitud de los elementos coincida

Para aquellos que luchan con la advertencia “SettingWithCopy”, aquí hay una solución que puede no ser tan eficiente, pero aún así hacer el trabajo.

Supongamos que tiene que sobrescribir column_1 y column_3, pero retener column_2 y column_4

 columns_to_overwrite = ["column_1", "column_3"] 

Primero elimine las columnas que pretende reemplazar …

 original_df.drop(labels=columns_to_overwrite, axis="columns", inplace=True) 

… luego vuelva a insertar las columnas, pero utilizando los valores que deseaba sobrescribir

 original_df[columns_to_overwrite] = other_data_frame[columns_to_overwrite]