函数返回一个含糊不清的系列的值

时间:2017-11-10 01:05:31

标签: python numpy if-statement dataframe

我试图编写一个函数来检查数据帧中列的值是否等于某个值然后返回该行的工资列,否则返回np.na但我不断收到以下错误:  系列的真值是模棱两可的。使用a.emptya.bool()a.item()a.any()a.all()

这是我的代码:

def hourly_wage_worker(row):

    """ return np.nan if a row is not unionized and hourly wage if unionized"""

    if row['union'] == 'Union':
        return row['wage']
    else:
        return np.nan

1 个答案:

答案 0 :(得分:1)

假设您正在使用pandas,

尝试 一般例子

df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['A', 'B'])
df['c'] = np.where(df['A']==0, df['B'], np.nan)

你的案子

df['newcolumn'] = np.where(df['union']=='Union', df['wage'], np.nan)