2016-06-14 88 views
0

我有填充字段ResultAccount一个populateResult功能。如果df3.AccounName2为空,则DF3 [ “ResultAccount”]是df3.AccountName。否则df3 [“ResultAccount”]是df3.AccountName2。else条件数据帧

在我的代码中,永远不会达到elif条件。只有if条件得到评估并填充ResultAccount。不知道为什么其他条件永远达不到。任何帮助,将不胜感激。

PopulateResult功能:

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

函数调用:

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

这可能只是有关使用它作为df3.AccountName2.isnull ()(你错过了()。ISNULL是一个函数,需要被称为一个) – Akshar

回答

0

我想你需要双numpy.where

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