Python pandas如何重复追加DataFrame并替换指定列值生成目标表
结论
该需求完全可以在Python中实现,借助pandas库即可快速完成全部处理,不需要复杂的自定义逻辑。
实现逻辑
- 提取原始DataFrame1中
database列的所有唯一取值,保留值在原数据中的出现顺序 - 按照唯一值的数量复制对应份数的DataFrame2,每份副本的
database列值替换为对应的唯一取值 - 将原始DataFrame1与所有处理完成的DataFrame2副本按顺序纵向拼接,重置索引后即可得到目标DataFrame3
参考实现代码
首先确保环境中已安装pandas,导入库后执行以下代码即可:
import pandas as pd # 提取df1中database列的唯一值 unique_db_list = df1["database"].unique() # 批量生成替换了database值的df2副本 processed_df2_list = [] for db_val in unique_db_list: current_copy = df2.copy() current_copy["database"] = db_val processed_df2_list.append(current_copy) # 拼接得到最终结果 df3 = pd.concat([df1, *processed_df2_list], ignore_index=True)
结果说明
如果DataFrame1中database的唯一值为ei1、ei2,最终输出的df3将完全符合预期:
- 第一部分为原始DataFrame1的全部记录
- 第二部分为
database值替换为ei1的完整DataFrame2记录 - 第三部分为
database值替换为ei2的完整DataFrame2记录 - 拼接后的数据集列结构与原始数据集完全一致,不会出现字段错位、数据丢失问题
内容的提问来源于stack exchange,提问作者angelicamen26
相关产品推荐
相关产品推荐

