python:如果发生其他结果错误,则返回值不正确

时间:2018-11-01 01:43:31

标签: python pandas

我编程如下:

================= 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的值超过100.000000 但是,BN_YN没有1。

如何获得1/0的结果?

1 个答案:

答案 0 :(得分: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))