大熊猫:根据值是否存在于差异列中来创建列

时间:2018-12-07 11:39:51

标签: python pandas numpy

我想根据以下条件创建一个新列:

  • 如果列1不为空,则新列值为1
  • 如果第2列不为空,则添加新列,则值为100
  • 如果两列都不为空,则新列值为101

是否有更好的方法来做到这一点?谢谢

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']

1 个答案:

答案 0 :(得分:2)

请注意,布尔值会转换为0 / 1进行计算:

df['sum'] = df[1].notnull() + df[2].notnull() * 100