我的程序如下:
=====================python程序=====================
print(df.AMT.describe())
if (df.AMT.all() >= 100.000000):
df.BN_YN = 1
else:
df.BN_YN = 0
df.groupby("BN_YN").size()
===============python程序结果===============
count 850834.000000
mean 122.405618
std 607.791592
min 0.000000
25% 17.119406
50% 59.414306
75% 110.213483
max 215742.068175
Name: AMT, dtype:float64
BN_YN
0 850834
dtype: int64
如您所见,AMT的值超过100000然而,BN_YN
没有1。
如何同时得到1/0的结果?
IIUC:使用以下numpy
where
将是解决方案
df['BN_YN'] = df.apply(lambda x: np.where(x['AMT'] >= 100, 1, 0), axis=1)
也可以这样写:
df = df.assign(BN_YN=df.apply(lambda x: np.where(x['AMT'] >= 100, 1, 0), axis=1))