You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中按条件重复DataFrame行并重置索引?

Pandas实现特定行重复并重置索引

步骤1:构造原始DataFrame

先还原你提供的带缺失值的DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Column1': ['A', 'A', 'B'],
    'Column2': [np.nan, 'D', np.nan],
    'Column3': ['C', np.nan, np.nan]
}, index=[1,2,3])

步骤2:实现行重复与索引重置

用以下代码完成需求:

# 生成每行的重复次数:Column2为"D"时重复2次,其余行1次
repeat_counts = df['Column2'].eq('D').map({True: 2, False: 1})

# 重复指定行并重置索引
result = df.loc[df.index.repeat(repeat_counts)].reset_index(drop=True)

# 让索引从1开始(匹配你的示例结果)
result.index = result.index + 1

代码说明

  • df['Column2'].eq('D'):判断每行Column2是否等于"D",得到布尔序列
  • repeat_counts:将布尔值转换为重复次数,符合条件的行重复2次,其他行保持1次
  • df.index.repeat(repeat_counts):生成包含重复索引的序列,通过loc提取对应行
  • reset_index(drop=True):丢弃原索引,生成默认连续索引,最后手动调整索引从1开始

运行后得到的结果与你期望的完全一致。

内容的提问来源于stack exchange,提问作者Simon GIS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:09:56