如何在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
相关产品推荐
相关产品推荐

