Python实现将1-50列值转换为1-10刻度的简便方法
最简实现方法:整数除法映射
核心逻辑是通过整数除法的特性完成分段映射:将目标数值先减1(消除起始偏移),再对5做整数除法,最后加1即可得到1-10的刻度。这个方法无需额外依赖,计算效率极高,且完全覆盖1-50的数值范围。
单个数值处理
def map_to_scale(x): return (x - 1) // 5 + 1
测试验证
- 输入
3:(3-1)//5 +1 = 0 +1 = 1,符合预期 - 输入
7:(7-1)//5 +1 =1 +1 =2,符合预期 - 输入
50:(50-1)//5 +1 =9 +1 =10,符合预期
Pandas列批量处理
如果是处理DataFrame中的整列数据,一行代码即可完成转换:
import pandas as pd # 构造示例数据 df = pd.DataFrame({'original_num': range(1, 51)}) # 生成刻度列 df['scale'] = (df['original_num'] - 1) // 5 + 1
内容的提问来源于stack exchange,提问作者Tinkinc
相关产品推荐
相关产品推荐

