如何逐行检查DataFrame中prediction列数值所属区间并生成对应标签列
解决Pandas DataFrame列数值区间映射问题
方法1:使用pd.cut(推荐,效率更高)
这是Pandas内置的分箱函数,属于矢量化操作,适合处理大批量数据。
代码示例:
import pandas as pd # 定义区间边界和对应映射值 bins = [0, 0.4, 0.6, 1] labels = [-1, 0, 1] # 新增pred_label列存储映射结果 df['pred_label'] = pd.cut( df['prediction'], bins=bins, labels=labels, include_lowest=True, # 包含区间左边界0 right=True # 区间为左闭右开,即0.4归到0区间、0.6归到1区间,可根据需求调整 ).astype(int)
运行后示例DataFrame得到的pred_label列结果如下:
| 原prediction值 | 映射结果 |
|---|---|
| 0.386086 | -1 |
| 0.708179 | 1 |
| 0.410866 | 0 |
| 0.416667 | 0 |
方法2:使用apply+自定义函数(逻辑更直观)
如果数据量不大,想要更直白的逻辑控制,可以用自定义函数映射:
def map_pred_value(x): if x <= 0.4: return -1 elif x <= 0.6: return 0 else: return 1 df['pred_label'] = df['prediction'].apply(map_pred_value)
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

