Ho due dataframes (df1 e df2) che hanno le stesse righe e colonne. Vorrei prendere il massimo di questi due dataframes, elemento per elemento. Inoltre, il risultato di ogni numero massimo di elementi con un numero e NaN dovrebbe essere il numero. L'approccio che ho implementato finora sembra inefficiente:Numero massimo di due DataFrames Ignorare NaN
def element_max(df1,df2):
import pandas as pd
cond = df1 >= df2
res = pd.DataFrame(index=df1.index, columns=df1.columns)
res[(df1==df1)&(df2==df2)&(cond)] = df1[(df1==df1)&(df2==df2)&(cond)]
res[(df1==df1)&(df2==df2)&(~cond)] = df2[(df1==df1)&(df2==df2)&(~cond)]
res[(df1==df1)&(df2!=df2)&(~cond)] = df1[(df1==df1)&(df2!=df2)]
res[(df1!=df1)&(df2==df2)&(~cond)] = df2[(df1!=df1)&(df2==df2)]
return res
Altre idee? Grazie per il tuo tempo.
Aggiungi almeno un campione del dataframe originale di riprodursi il tuo problema. –