繁体   English   中英

label列如何输入“低-中-高”?

[英]How to label column inputs "low - medium -high"?

我有 1 分钟间隔的数据,我想将列输入分组为低-中-高。

如果在 0-33 之间:低 如果在 33-67 之间:中等 如果在 67-100 之间:高

由此:

     df
    timestamp    val1                           
    2019-06-05  40  
    2019-06-05  12  
    2019-06-05  78

对此:

df
timestamp    val1                           
2019-06-05  medium  
2019-06-05  low
2019-06-05  high

您可以使用pandas.cut()

bins = [0, 33, 67, 100]
labels = ['low', 'meduin', 'high']
df['val1'] = pd.cut(df['val1'], bins, labels=labels)
print(df)

    timestamp    val1
0  2019-06-05  meduin
1  2019-06-05     low
2  2019-06-05    high

您可以执行以下操作:

df['val1'] = df['val1'].apply(lambda x:  'low' if 0 < x < 33 else 'med' if 33 <= x < 66 else 'high')

另一种可能的解决方案,基于numpy.where

df['val1'] = np.where(df.val1 <= 33, 'low',
  np.where(df.val1 < 67, 'medium', 'high'))

Output:

    timestamp    val1
0  2019-06-05  medium
1  2019-06-05     low
2  2019-06-05    high

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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