それぞれに同じ行と列を持つ2つのデータフレーム(df1とdf2)があります。私はこれらの2つのデータフレームを要素ごとに最大限に活用したいと考えています。さらに、数値とNaNを持つ要素ごとの最大値の結果が数値でなければなりません。これまでに実装してきたアプローチは効率が悪いようです。要素単位で最大2つのデータフレームが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
他のアイデアは他にもありますか?あなたの時間をありがとう。あなたは条件がTrue
ある別のDF、DFに対してあなたをテストするためにwhere
を使用することができます
を再現するために、元のデータフレームの少なくともサンプルを追加してくださいあなたの問題。 –