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

如何将多个DataFrame按Season索引合并至对应正确位置

合并多份结构相似的DataFrame(按Season匹配)

需求说明

你有4个结构相近的DataFrame:

  • 均包含Season(作为索引)和FSvalue列
  • 每个DataFrame的Season起始值不同
  • 需要合并为一个新DataFrame,要求:
    • Season作为第一列
    • 包含4个分别对应原DataFrame的FSvalue列
    • 各FSvalue值与对应的Season行正确匹配

解决方案

步骤1:修改读取代码,给列重命名避免冲突

先给每个DataFrame的FSvalue列设置唯一名称,防止合并时列名重复:

import pandas as pd

# 读取并处理第一个数据集
df_a = pd.read_csv('xxxFreshSnowperSeason.csv', delimiter=",", dtype={'Season': str, 'FSvalue': float})
df_a = df_a.rename(columns={'FSvalue': 'FS_a'}).set_index('Season')

# 同理处理另外三个数据集,替换文件名和列名后缀
df_b = pd.read_csv('yyyFreshSnowperSeason.csv', delimiter=",", dtype={'Season': str, 'FSvalue': float})
df_b = df_b.rename(columns={'FSvalue': 'FS_b'}).set_index('Season')

df_c = pd.read_csv('zzzFreshSnowperSeason.csv', delimiter=",", dtype={'Season': str, 'FSvalue': float})
df_c = df_c.rename(columns={'FSvalue': 'FS_c'}).set_index('Season')

df_d = pd.read_csv('aaaFreshSnowperSeason.csv', delimiter=",", dtype={'Season': str, 'FSvalue': float})
df_d = df_d.rename(columns={'FSvalue': 'FS_d'}).set_index('Season')

步骤2:合并DataFrame并对齐Season

使用pd.concat按列合并,自动根据索引(Season)对齐数据:

# 合并所有DataFrame
merged_df = pd.concat([df_a, df_b, df_c, df_d], axis=1)

# 将Season从索引转换为第一列(可选,按需使用)
merged_df = merged_df.reset_index()

结果说明

合并后的merged_df会自动对齐所有存在的Season值,某个DataFrame中没有的Season行,对应列会显示NaN,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:25:21