मैं इन शर्तों के आधार पर एक नया कॉलम बनाना चाहता हूं:

  • यदि कॉलम 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']
3
filipnov 7 पद 2018, 14:39

1 उत्तर

सबसे बढ़िया उत्तर

बस ध्यान दें कि गणना के लिए बूलियन मान 0 / 1 में अनुवाद करते हैं:

df['sum'] = df[1].notnull() + df[2].notnull() * 100
2
jpp 7 पद 2018, 11:42