如何在DataFrame中创建指定行数重复行并修改指定列值
解决方案:基于指定行创建重复行并修改列值后追加到原DataFrame
没问题,我来帮你搞定这个需求!下面是用Pandas实现的具体步骤和代码,完全贴合你的要求:
步骤拆解
- 提取你指定的目标行(行索引4)
- 生成25条该行的重复数据
- 修改这些重复行里的
C列值为1 - 将修改后的重复行追加到原DataFrame的末尾
- (可选)重置索引,避免出现重复的索引值
完整代码示例
首先我们先构造你提供的示例DataFrame:
import pandas as pd # 构造示例数据 data = { 'A': [1,2,2,2,1,1,2,2,2,1], 'B': [1,2,2,2,1,1,2,2,2,1], 'C': [0,1,1,1,0,0,1,1,1,0], 'D': [1,1,1,1,1,1,1,1,1,1], 'E': [1,1,1,1,1,1,1,1,1,1], 'F': [0,0,0,0,0,0,0,0,0,0] } df = pd.DataFrame(data)
接下来执行核心操作:
# 1. 提取目标行(行索引4),用copy()避免后续修改影响原行 target_row = df.iloc[4].copy() # 2. 创建25条重复行 new_rows = pd.DataFrame([target_row] * 25) # 3. 修改C列为1 new_rows['C'] = 1 # 4. 追加到原DataFrame末尾,ignore_index=True重置索引 df = pd.concat([df, new_rows], ignore_index=True)
代码说明
- 用
df.iloc[4]精准定位行索引为4的行,加上.copy()是为了防止后续修改重复行时意外改动原DataFrame里的目标行 [target_row] * 25会生成一个包含25个相同行对象的列表,再用pd.DataFrame()转换成DataFrame格式- 直接给
new_rows['C']赋值1会批量修改所有重复行的C列值 pd.concat()用来合并原DataFrame和新生成的重复行,ignore_index=True会让合并后的DataFrame重新生成连续的索引,避免出现重复索引的问题
运行完代码后,你原DataFrame的末尾就会多出25条基于行4、且C列值为1的新行啦!
内容的提问来源于stack exchange,提问作者user9238790
相关产品推荐
相关产品推荐

