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

Pandas合并DataFrame后结果为空表,如何解决?

解决合并DataFrame得到空结果的问题

问题原因

两个DataFrame的Time列日期部分完全不重叠:resampled_fd的时间是2021-12-11,而df的时间是1900-01-01。pd.merge()默认按整列值完全匹配,没有共同的Time值,所以返回空DataFrame。

解决方法

根据需求,有两种处理方向:


方向1:忽略日期,仅按时分秒匹配

如果需要按**同一时间点(不管日期)**合并,提取时间部分作为匹配键:

  1. 先将Time列转为datetime类型(确保可以提取时间):
df['Time'] = pd.to_datetime(df['Time'])
resampled_fd['Time'] = pd.to_datetime(resampled_fd['Time'])
  1. 提取时分秒作为新的匹配列:
df['time_part'] = df['Time'].dt.time
resampled_fd['time_part'] = resampled_fd['Time'].dt.time
  1. 基于新列合并:
dfc = pd.merge(df, resampled_fd, on='time_part').drop('time_part', axis=1)

合并后会保留两个原Time列,可根据需要重命名或删除。


方向2:修正df的日期错误

如果df的日期是输入错误(本该是2021-12-11),直接修正日期部分:

df['Time'] = df['Time'].apply(lambda x: x.replace(year=2021, month=12, day=11))
# 再执行原合并代码
dfc = pd.merge(df, resampled_fd)

这样整列Time值就会有重叠,合并后得到正常结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:00:00