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

如何正确按列拼接两个DataFrame并实现日期对齐的并排显示?

解决DataFrame并排展示时的NaN与索引问题

问题描述

尝试将两个DataFrame内容并排展示,执行以下代码后:

gh = pd.concat([data[0], data[1]], keys=["Berlin", "London"], axis=1)

结果出现双列索引(name和date),对应城市的数值区域存在大量NaN,仅在各自索引行有数据。期望实现:仅保留date作为行索引,同一日期下两个城市的对应数值并排显示,无NaN值。

解决方案

问题核心在于两个DataFrame的行索引未统一为date,且原代码的keys参数导致列多级索引,同时行索引未对齐产生NaN。按以下步骤调整:

  1. 预处理单个DataFrame:
    分别提取每个城市数据的date和数值列,将数值列重命名为城市名,并设置date为行索引:

    # 处理Berlin数据(替换value为你的实际数值列名)
    berlin_df = data[0].set_index('date')[['value']].rename(columns={'value': 'Berlin'})
    # 处理London数据
    london_df = data[1].set_index('date')[['value']].rename(columns={'value': 'London'})
    
  2. 合并DataFrame:
    基于统一的date索引,使用pd.concat横向合并:

    gh = pd.concat([berlin_df, london_df], axis=1)
    

替代方案(使用merge)

如果需要更严格的索引对齐,也可以用pd.merge:

gh = pd.merge(
    data[0].set_index('date'),
    data[1].set_index('date'),
    left_index=True,
    right_index=True,
    suffixes=('_Berlin', '_London')
)

说明

  • 确保两个DataFrame的date列完全匹配(无缺失或不重复的日期),否则仍会出现NaN,可根据需求用fillna()填充缺失值。
  • 预处理时移除无关列(如name),避免合并后出现冗余的多级列索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:57:41