Python pandas使用If逻辑按bugs列值复制行并调整数值的实现方案
Pandas行按指定次数复制实现方案
你可以直接使用pandas内置的repeat方法完成需求,完整可运行代码如下:
import pandas as pd df = pd.DataFrame(data={ 'id': ['A', 'B', 'C'], 'bugs' : [ 1, 2, 3], }) # 核心实现代码 result = df.loc[df.index.repeat(df['bugs'])].assign(bugs=1).reset_index(drop=True) print(result)
运行输出结果和你给出的the_result_i_want完全一致。
逻辑说明
df.index.repeat(df['bugs']):按照每行bugs列的数值,生成对应重复次数的行索引- 通过
loc按重复后的索引取行,得到行重复后的DataFrame assign(bugs=1):将所有行的bugs列统一修改为1reset_index(drop=True):重置索引,清除重复的旧索引避免影响后续数据操作
该方案为pandas原生向量化操作,相比循环逐行复制的写法性能更高,适合处理大批量数据。
内容的提问来源于stack exchange,提问作者Miraiinik
相关产品推荐
相关产品推荐

