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

不同大小Pandas DataFrame合并及用小表填充NaN值方案咨询

实现代码

import pandas as pd

# 方案1:兼容性更高,无需高版本pandas支持
# 把df2的单行数据批量填充到df1的所有行
merged_part = df1.assign(**df2.iloc[0].to_dict())
# 统一将所有行的索引替换为df2的日期
merged_part.index = [df2.index[0]] * len(merged_part)
# 拼接原始df2行,得到最终4行结果
res = pd.concat([merged_part, df2], axis=0)

# 可选:调整列顺序匹配你期望的输出格式
res = res[['x', 'y', 'z', 'symbol', 'symbol', 'value1', 'value2', 'Occurance']]

替代方案(pandas 1.2.0+ 支持)

# 用交叉合并生成笛卡尔积,自动完成df2单行数据的批量填充
merged_part = df2.merge(df1, on='symbol', how='cross')
merged_part.index = [df2.index[0]] * len(merged_part)
res = pd.concat([merged_part, df2], axis=0)

说明

两种方案都没有用到循环,完全基于pandas内置方法实现:

  1. 批量填充逻辑靠pandas的广播特性自动完成,不需要逐行赋值
  2. 统一修改索引即可实现所有行的日期替换为df2的日期
  3. 最后拼接原始df2行,自然保留df1字段为空的最后一行,完全匹配期望的输出结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:45:03