Python实现按Orange出现批次为DataFrame行批量打标签
解决方案
原始数据
| A |
|---|
| Orange |
| Apple |
| Orange |
| Pineapple |
| Apple |
目标格式
| A | label |
|---|---|
| Orange | 1 |
| Apple | 1 |
| Orange | 2 |
| Pineapple | 2 |
| Apple | 2 |
代码实现
用Pandas可以高效处理这类批量数据,核心思路是通过标记Orange的出现位置,再累计求和生成批次标签:
import pandas as pd # 替换为你的实际数据集,这里用示例数据演示 data = {'A': ['Orange', 'Apple', 'Orange', 'Pineapple', 'Apple']} df = pd.DataFrame(data) # 生成label列:每次遇到'Orange'计数递增,后续行沿用当前计数 df['label'] = (df['A'] == 'Orange').cumsum() # 输出结果 print(df)
代码说明
df['A'] == 'Orange'生成布尔序列,遇到Orange时为True(等价于1),其余为False(等价于0).cumsum()对布尔序列做累计求和,自动实现“遇Orange递增标签,后续行沿用”的逻辑- 该方法时间复杂度为O(n),处理百万级数据仍能保持高效
内容的提问来源于stack exchange,提问作者Mythili
相关产品推荐
相关产品推荐

