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

如何基于筛选条件将另一DataFrame的列值添加到目标DataFrame中

实现思路

  1. 首先确认infra_df中Name值为net的行数和measures_df的行数完全一致(示例中均为4行,满足匹配要求)
  2. 先给infra_df初始化要新增的两个字段,默认值设为NaN
  3. 筛选出infra_df中所有Name为net的行的索引,按顺序将measures_df的对应值赋值到这些行的新增字段中

可运行代码示例

import pandas as pd
import numpy as np

# 构造示例infra_df
infra_data = {
    'Name': ['net', 'stat', 'net', 'net', 'sig', 'net'],
    'time': ['8am'] * 6
}
infra_df = pd.DataFrame(infra_data)

# 构造示例measures_df
measures_data = {
    'tcp_time': [12, 22, 23, 34],
    'tcp_wait': [33, 11, 32, 11]
}
measures_df = pd.DataFrame(measures_data)

# 核心实现逻辑
# 1. 新增字段初始赋值为NaN
infra_df[['tcp_time', 'tcp_wait']] = np.nan
# 2. 筛选Name为net的行索引
net_row_indexes = infra_df[infra_df['Name'] == 'net'].index
# 3. 按顺序赋值
infra_df.loc[net_row_indexes, ['tcp_time', 'tcp_wait']] = measures_df.values

# 得到最终结果
result_df = infra_df

输出结果验证

运行代码后得到的result_df完全符合要求:

Name time  tcp_time  tcp_wait
0   net  8am      12.0      33.0
1  stat  8am       NaN       NaN
2   net  8am      22.0      11.0
3   net  8am      23.0      32.0
4   sig  8am       NaN       NaN
5   net  8am      34.0      11.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:57:03