繁体   English   中英

如果值高于或低于某个值,则创建阈值并显示文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM