我有两个数据框(df1和df2),它们每个都有相同的行和列。我希望逐元素地取这两个数据框的最大值。此外,任何元素与数字和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
还有其他的想法吗?感谢您的时间。