[英]Create threshold and display text if value is above or below a certain value
我有一个包含多个组的数据集 df。 我想为每个组设置一个阈值。 如果阈值高于或低于某个值,则应显示某个文本。
group start end diff percent date
A 2019-04-01 2019-05-01 -160 -11 04-01-2019 to 05-01-2019
A 2019-05-01 2019-06-01 136 8 05-01-2019 to 06-01-2019
B 2020-06-01 2020-07-01 202 5 06-01-2020 to 07-01-2020
B 2020-07-01 2020-08-01 283 7 07-01-2020 to 08-01-2020
我想将上限阈值设置为大于 250 的任何值,将下限阈值设置为小于 0 的任何值。
预期结果:
group start end diff percent date result
A 2019-04-01 2019-05-01 -160 -11 04-01-2019 to 05-01-2019 unacceptable
A 2019-05-01 2019-06-01 136 8 05-01-2019 to 06-01-2019 acceptable
B 2020-06-01 2020-07-01 202 5 06-01-2020 to 07-01-2020 acceptable
B 2020-07-01 2020-08-01 283 7 07-01-2020 to 08-01-2020 unacceptable
这就是我正在做的:
df['result'] = df.where(df['percent']> 250,'unacceptable')
这是行不通的,我正在研究这个。 任何建议表示赞赏。
为什么不使用df.loc
呢?
df.loc[df['percent']>250,'percent'] = 'unacceptable'
让我们尝试装箱
df['result']=pd.cut(df.start, [-np.inf, 0, 250,np.inf], labels=['unacceptablelow','acceptable', 'unacceptablehigh'])
group start end diff percent date \
A 2019-04-01 2019-05-01 -160 -11 04-01-2019 to 05-01-2019
2019-05-01 2019-06-01 136 8 05-01-2019 to 06-01-2019
B 2020-06-01 2020-07-01 202 5 06-01-2020 to 07-01-2020
2020-07-01 2020-08-01 283 7 07-01-2020 to 08-01-2020
result
A 2019-04-01 unacceptablelow
2019-05-01 acceptable
B 2020-06-01 acceptable
2020-07-01 unacceptablehigh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.