unit_price_x列がNULLの行には、同じ行のunit_price_yを代入するプログラムを作成しました。
ですが、ラムダ関数内でNULLをisnull()を用いて判別しようとするとエラーが出てしまいます。
該当箇所まで、numpyを使用していないのに'numpy.float64' objectに型が変わっている?のは何故なのか、
ご存知の方、ご教授ください。
コード
python
1df_tmp=pd.DataFrame({"unit_price_x":[2,3,4,2,4,None,5,None,8],"unit_price_y":[3,4,5,6,3,2,3,4,4]}) 2df_tmp["unit_price_x"]=df_tmp[["unit_price_x","unit_price_y"]].apply(lambda x:x[1] if x[0].isnull() else x[0], axis=1)
↓エラーメッセージ
python
1'numpy.float64' object has no attribute 'isnull'
メッセージに従ってnp.isnan(x[0])を代用するともちろん動きます。
↓動作コード
python
1df_tmp=pd.DataFrame({"unit_price_x":[2,3,4,2,4,None,5,None,8],"unit_price_y":[3,4,5,6,3,2,3,4,4]}) 2df_tmp["unit_price_x"]=df_tmp[["unit_price_x","unit_price_y"]].apply(lambda x:x[1] if np.isnan(x[0]) else x[0], axis=1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/05/26 13:17