Mam dwie ramki danych (df1 i df2), z których każda ma te same wiersze i kolumny. Chciałbym wziąć maksimum z tych dwóch ramek danych, element po elemencie. Ponadto, wynikiem dowolnego elementu o wartości maksymalnej z liczbą i NaN powinna być liczba. Podejście, które wdrożyłem do tej pory, wydaje się nieefektywne:Elementarne maksimum dwóch ramek danych Ignoring NaNs
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
Jakieś inne pomysły? Dziękuję za Twój czas.
Należy dodać co najmniej próbkę oryginalnego dataframe odtworzyć Twój problem. –