如何在Pandas DataFrame中复制指定行并为新增行设置递增ID
你现有代码的筛选逻辑存在错误,ID列存储的是数值1-4,分类是Type列,所以首先要修正筛选条件。完整的实现步骤如下:
步骤1:正确筛选目标行
import pandas as pd # 原始数据集 df = pd.DataFrame({'ID': [1,2,3,4], 'Type': ['A', 'B', 'C', 'D'], 'Value': [100, 200, 201, 120]}) # 筛选Type为B的行,加copy避免后续修改触发链式索引警告 df_B = df[df['Type'] == 'B'].copy()
步骤2:复制行并更新ID为递增序列
你可以按照需求选择固定起始ID,或者自动从原数据集最大ID+1开始生成递增ID:
copy_times = 4 # 需要复制的次数 # 复制行并重置索引,方便后续赋值 df_B = pd.concat([df_B] * copy_times, ignore_index=True) # 方式1:固定从10开始生成递增ID(和你示例的预期结果一致) df_B['ID'] = range(10, 10 + copy_times) # 方式2:自动适配原数据集最大ID,从最大ID+1开始递增(通用性更强) # start_id = df['ID'].max() + 1 # df_B['ID'] = range(start_id, start_id + copy_times)
步骤3:将处理后的新行追加到原数据集
df = pd.concat([df, df_B], ignore_index=True)
运行后输出的df就和你预期的结果完全一致。
内容的提问来源于stack exchange,提问作者Beta
相关产品推荐
相关产品推荐

