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

如何在Pandas DataFrame中复制包含PMO的行?

实现复制匹配“PMO”的行并插入原行下方

完全可以实现,下面是两种高效的操作方法:

方法一:逐行处理构造新数据

通过遍历原DataFrame的每一行,判断是否为目标行,若是则同时添加原行和复制行到新数据列表:

import pandas as pd

data = [['PMO', 10], ['LOL', 15], ['juli', 14], ['PMO', 10], ['LOL', 15], ['juli', 14]]
df = pd.DataFrame(data, columns=['Name', 'Age'])

new_data = []
for _, row in df.iterrows():
    new_data.append(row)
    # 匹配"PMO"时添加复制行
    if row['Name'] == 'PMO':
        new_data.append(row.copy())

# 生成新的DataFrame
new_df = pd.DataFrame(new_data, columns=df.columns)
print(new_df)

运行后输出结果:

Name  Age
0   PMO   10
1   PMO   10
2   LOL   15
3  juli   14
4   PMO   10
5   PMO   10
6   LOL   15
7  juli   14

方法二:扩展索引实现(更简洁)

通过扩展索引列表,重复目标行的索引,再重新生成DataFrame:

import pandas as pd

data = [['PMO', 10], ['LOL', 15], ['juli', 14], ['PMO', 10], ['LOL', 15], ['juli', 14]]
df = pd.DataFrame(data, columns=['Name', 'Age'])

# 构建扩展后的索引列表
extended_index = []
for idx in df.index:
    extended_index.append(idx)
    if df.loc[idx, 'Name'] == 'PMO':
        extended_index.append(idx)

# 根据扩展索引生成新DataFrame并重置索引
new_df = df.loc[extended_index].reset_index(drop=True)
print(new_df)

该方法的输出结果和方法一完全一致,代码更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:55:19