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

如何优雅合并Pandas中不同大小的DataFrame?无需冗余循环

用Pandas Merge优雅合并DataFrame

直接用Pandas内置的merge()方法就能实现需求,完全不需要编写冗余循环,这是处理这类键值匹配场景的标准高效方案。

步骤示例

  1. 先构造模拟数据(贴合你的场景):
import pandas as pd

# 包含week_of_year列的主DataFrame
df_main = pd.DataFrame({
    'week_of_year': [12, 12, 13, 13, 14, 12],
    'other_column': ['x', 'y', 'z', 'a', 'b', 'c']
})

# 记录各周最大值的小DataFrame
df_week_max = pd.DataFrame({
    'week_of_year': [12, 13, 14],
    'max_value': [34, 45, 29]
})
  1. 执行合并操作,以week_of_year作为匹配键:
# 左连接保留主DataFrame的所有行,自动匹配对应周的最大值
merged_df = df_main.merge(df_week_max, on='week_of_year', how='left')

合并后的结果会自动将主DataFrame中所有week_of_year为12的行填充max_value=34,以此类推:

week_of_yearother_columnmax_value
12x34
12y34
13z45
13a45
14b29
12c34

补充说明

  • how='left'确保主DataFrame的所有行都被保留,若某周在小DataFrame中无对应值,max_value会填充为NaN
  • 如果两个DataFrame的周列名称不同,可通过left_on和right_on分别指定,比如:merge(df_main, df_week_max, left_on='week_of_year', right_on='week_num', how='left')
  • 这种方法的执行效率远高于循环,Pandas内部做了向量优化,适合处理大体积数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:20:56