我想根据以下条件创建一个新列:
是否有更好的方法来做到这一点?谢谢
df = pd.DataFrame([['a', np.nan, 100], ['b', 20, np.nan], ['c', 30, 300], ['d', np.nan, np.nan]])
df['is_1'] = np.where(df[1].notnull(), 1, 0)
df['is_2'] = np.where(df[2].notnull(), 100, 0)
df['sum'] = df['is_1'] + df['is_2']
答案 0 :(得分:2)
请注意,布尔值会转换为0
/ 1
进行计算:
df['sum'] = df[1].notnull() + df[2].notnull() * 100