2016-06-14 18 views
0

フィールドResultAccountにデータを入力するpopulateResult関数があります。 df3.AccounName2が空の場合、df3 ["ResultAccount"]はdf3.AccountNameです。 Else df3 ["ResultAccount"]はdf3.AccountName2です。他の条件がパンダのデータフレームに到達していない

私のコードでは、elif条件には決して達しません。 if条件のみが評価され、ResultAccountが生成されます。他の条件に決して達していない理由はわかりません。どんな助けもありがとう。

PopulateResult機能:

def populateResult(df3): 
if(df3.AccountName2.isnull): 
    return df3.AccountName 
elif(df3.AccountName.isnull): 
    return df3.AccountName2 

ファンクションコール:私はあなたがダブルnumpy.where必要だと思う

df3["ResultAccount"] = populateResult(df3) 
+0

それはちょうどdf3.AccountName2.isnullとしてそれを使用することについてであるかもしれません()(あなたは()が不足しています。isnullは関数なので、呼び出す必要があります) – Akshar

答えて

0

df3["ResultAccount"] = np.where(df3.AccountName2.isnull(), 
           df3.AccountName, 
           np.where(df3.AccountName.isnull(), 
             df3.AccountName2, 
             'None')) 
print (df3) 
+0

常にAccountName2を与えます。 ResultAccountは常にAccountName2の値です。 – user3447653

+0

'df3.AccountName2.isnull()'は何を返しますか? – jezrael

+0

編集した回答を確認してください。 – jezrael

関連する問題