检查一个列的值是否在Pandas中另一列的正负10%范围内

Ft 2020-10-03 AM 39℃ 0条

Q:
我想检查是否value2在正负10%的范围内value1,并返回一个新列result_review。
如果它不是在要求的范围内,则显示No为result_review的值。

A:
使用Series.between有DataFrame.loc:

m = df['value2'].between(df['value1'].mul(0.9), df['value1'].mul(1.1))
df.loc[~m, 'results_review'] = 'no'
print (df)
        id  value1     value2 results_review
0  3918703    62.0  64.705882            NaN
1  3919144    60.0  60.000000            NaN
2  3919534    62.5  30.000000             no
3  3919559    55.0  55.000000            NaN
4  3920438    82.0  82.031250            NaN
5  3920463    71.0  71.428571            NaN
6  3920502    70.0  69.230769            NaN
7  3920535    80.0  40.000000             no
8  3920674    62.0  62.222222            NaN
9  3920856    80.0  79.987176            NaN
标签: python

非特殊说明,本博所有文章均为博主原创。

评论啦~