我有一个名为V_test的数据帧,看起来有点像:
| offer_code | min_age_actual | min_age_allowed
-|------------|----------------|----------------
0| 123 | 18 | 18
1| 456 | 49 | 50
2| 789 | 20 | NaN
我想创建一个新列,将实际最小年龄低于允许的最小年龄(如果有(的任何行标记为1。所有其他将被标记为0。所以想要的结果是这样的:
| offer_code | min_age_actual | min_age_allowed | flag
-|------------|----------------|-----------------|-----
0| 123 | 18 | 18 | 0
1| 456 | 49 | 50 | 1
2| 789 | 20 | NaN | 0
有人知道怎么做吗?
通过Series.astype
:将两列比较为整数的boolen掩码转换
df['flag'] = (df.min_age_actual < df.min_age_allowed).astype(int)
或者使用numpy.where
:
df['flag'] = np.where(df.min_age_actual < df.min_age_allowed), 1, 0)
使用df['col'] = np.where(df['A']<df['B'], 1, 0)