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

基于指定迭代编号合并两个DataFrame的需求实现

Pandas 实现指定行筛选与按位置合并

需求说明

从两个DataFrame df1 和 df2 中分别筛选指定迭代编号的行,再按对应位置横向合并为新的DataFrame df3:

  • df1筛选迭代编号:1_1、2_2、3_3、9_9
  • df2筛选迭代编号:1_1、2_2、5_5、6_6

示例数据

先还原输入的DataFrame:

import pandas as pd

df1 = pd.DataFrame({
    'iteration': ['1_1', '2_2', '3_3', '4_4', '5_5', '6_6', '7_7', '8_8', '9_9'],
    'IOPS': [46090, 12, 49164, 98311, 196604, 249843, 298974, 348108, 397230],
    'Latency': [0.7300, 0.0221, 0.1236, 0.1318, 0.2076, 0.1467, 0.1578, 0.1604, 0.1707]
})

df2 = pd.DataFrame({
    'iteration': ['1_1', '2_2', '3_3', '4_4', '5_5', '6_6'],
    'IOPS': [46074, 12, 49159, 98307, 298976, 397265],
    'Latency': [0.6977, 0.0279, 0.1921, 0.2189, 0.2337, 0.2622]
})

实现步骤

  1. 定义需要筛选的迭代编号列表
df1_filter_list = ['1_1', '2_2', '3_3', '9_9']
df2_filter_list = ['1_1', '2_2', '5_5', '6_6']
  1. 筛选目标行并重置索引(确保行位置对齐)
# 筛选df1的目标行,重置索引后保留原行顺序
filtered_df1 = df1[df1['iteration'].isin(df1_filter_list)].reset_index(drop=True)
# 筛选df2的目标行,重置索引后保留原行顺序
filtered_df2 = df2[df2['iteration'].isin(df2_filter_list)].reset_index(drop=True)
  1. 按位置横向合并两个筛选后的DataFrame
df3 = pd.concat([filtered_df1, filtered_df2], axis=1)

最终结果

打印df3即可得到目标格式:

iteration   IOPS  Latency iteration    IOPS  Latency
0       1_1  46090    0.730       1_1   46074    0.6977
1       2_2     12    0.0221      2_2      12    0.0279
2       3_3  49164    0.1236      5_5  298976    0.2337
3       9_9  397230   0.1707      6_6  397265    0.2622

关键说明

  • 使用isin()方法高效筛选指定迭代编号的行,确保保留原DataFrame中的行顺序
  • 重置索引(reset_index(drop=True))是为了让两个筛选后的DataFrame行索引完全对齐,保证按位置合并的准确性
  • pd.concat(axis=1)实现横向合并,将两个DataFrame的列依次拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:45:13