如何为数据列标记low-medium-high等级?按指定区间分组转换
按区间分组替换数值的解决方案
你可以用pandas的pd.cut()函数快速实现这个需求,它专门用于将连续数值按指定区间分组并替换为标签,代码如下:
import pandas as pd # 初始化原始数据 df = pd.DataFrame({ 'timestamp': ['2019-06-05', '2019-06-05', '2019-06-05'], 'val1': [40, 12, 78] }) # 按规则分组替换val1列 df['val1'] = pd.cut( x=df['val1'], bins=[0, 33, 67, 100], labels=['low', 'medium', 'high'], include_lowest=True ) print(df)
代码说明
bins参数定义了区间边界:[0,33,67,100]对应你要求的三个区间labels参数指定每个区间对应的分组名称include_lowest=True确保0值会被归入low区间(如果数据中存在0的话)
运行后输出结果:
timestamp val1 0 2019-06-05 medium 1 2019-06-05 low 2 2019-06-05 high
内容的提问来源于stack exchange,提问作者prof31
相关产品推荐
相关产品推荐

