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

如何基于日期合并不同格式日期的数据集?解决resample报错问题

问题解决与合并步骤

错误原因

你遇到的TypeError是因为rank_date列是object(字符串)类型,即便将其设为DataFrame索引,它也只是普通的Index对象,而resample方法仅支持DatetimeIndex、TimedeltaIndex或PeriodIndex类型的索引,因此无法执行重采样操作。

分步解决方法

1. 将rank_date转换为datetime格式

先把字符串类型的日期列转为datetime类型,确保后续索引符合resample的要求:

# 根据你的rank_date实际格式调整format参数,比如'%Y-%m-%d'对应"2024-05-20"这类格式
rank['rank_date'] = pd.to_datetime(rank['rank_date'], format='%Y-%m-%d', errors='coerce')
  • errors='coerce'会把无法识别的日期字符串转为NaT(缺失时间值),后续可根据需求处理这些缺失值。

2. 执行重采样与填充操作

转换完成后,再运行你原来的分组重采样代码,此时索引已是DatetimeIndex,resample可正常工作:

rank = rank.set_index(['rank_date']).groupby(['country_full'], group_keys=False).resample('D').first().fillna(method='ffill').reset_index()

3. 基于日期合并两个数据集

现在两个数据集的日期列都是datetime格式,直接用merge方法合并即可。假设第一个数据集的日期列名为date,第二个的日期列是处理后的rank_date:

# how参数可根据需求选择:inner(交集)、left(保留第一个数据集所有行)、right(保留第二个数据集所有行)、outer(并集)
merged_df = pd.merge(first_df, rank, left_on='date', right_on='rank_date', how='inner')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:25:17