Python实现:基于ID列4步递增规则为df新增VALUE列
解决方法
核心思路是利用模运算匹配循环规则:将ID减去400后对4取余,通过余数映射固定的字母值。
代码实现
import pandas as pd # 构造示例DataFrame(替换为你的实际数据即可) df = pd.DataFrame({'ID': [401, 402, 403, 404, 405, 406]}) # 定义余数到VALUE的映射关系 remainder_map = {1: 'A', 2: 'B', 3: 'C', 0: 'D'} # 生成VALUE列 df['VALUE'] = (df['ID'] - 400) % 4 df['VALUE'] = df['VALUE'].map(remainder_map) print(df)
运行结果
| ID | VALUE |
|---|---|
| 401 | A |
| 402 | B |
| 403 | C |
| 404 | D |
| 405 | A |
| 406 | B |
原理说明
df['ID'] - 400:把ID转换为从1开始的连续整数(401→1、402→2…404→4、405→5)% 4:对4取余得到循环余数(1、2、3、0、1、2…),刚好匹配A-D的循环规律map(remainder_map):将余数替换为对应字母,完成批量赋值
这种方法比逐个判断的while/if逻辑高效,尤其适合处理大数据量的DataFrame。
内容的提问来源于stack exchange,提问作者Kay S
相关产品推荐
相关产品推荐

