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

如何高效合并两个Pandas DataFrame中时间戳匹配的数据?

Pandas按匹配时间戳合并两个长度不同的DataFrame

这在时间序列数据处理里太常见了!我来给你说两种最高效的实现方式,完全匹配你的需求:

一、得到包含所有匹配时间戳的合并DataFrame

最直接的方式是用Pandas的merge函数做内连接(inner join),它会自动只保留两个DataFrame中都存在的时间戳,把对应的数据合并到一起。

步骤说明:

  1. 先确保你的时间戳列是datetime类型(避免字符串格式不统一导致匹配失败)
  2. 用merge指定匹配的时间戳列,选择how='inner'只保留交集数据

代码示例:

假设你的第二个DataFrame叫dataOther,时间戳列是TimestampOther(如果两个DataFrame的时间戳列名相同,比如都叫Timestamp,直接用on='Timestamp'更简单):

import pandas as pd

# 读取数据(你的原有代码)
fileREF = 'FilterDataREF.xlsx'
dataREF = pd.read_excel(fileREF, sheet_name='Sheet1')
# 假设第二个文件读取方式类似
fileOther = 'FilterDataOther.xlsx'
dataOther = pd.read_excel(fileOther, sheet_name='Sheet1')

# 转换时间戳列为datetime类型
dataREF['TimestampREF'] = pd.to_datetime(dataREF['TimestampREF'])
dataOther['TimestampOther'] = pd.to_datetime(dataOther['TimestampOther'])

# 内连接合并,只保留双方都有的时间戳
merged_df = pd.merge(
    dataREF, 
    dataOther, 
    left_on='TimestampREF', 
    right_on='TimestampOther', 
    how='inner'
)

如果数据量很大,把时间戳设为索引后用join会更快(索引查找效率更高):

# 设置时间戳为索引
dataREF = dataREF.set_index('TimestampREF')
dataOther = dataOther.set_index('TimestampOther')

# 内连接合并
merged_df = dataREF.join(dataOther, how='inner')

二、得到两个长度一致的匹配时间戳DataFrame

如果你不想合并成一个表,而是要分别从两个原DataFrame中筛选出对方存在的时间戳,用isin方法或者索引交集都很高效:

方法1:用isin筛选

# 从dataREF中筛选出dataOther有的时间戳
filtered_ref = dataREF[dataREF['TimestampREF'].isin(dataOther['TimestampOther'])]
# 从dataOther中筛选出dataREF有的时间戳
filtered_other = dataOther[dataOther['TimestampOther'].isin(dataREF['TimestampREF'])]

方法2:用索引交集(大数据集更高效)

# 先设置时间戳为索引
dataREF = dataREF.set_index('TimestampREF')
dataOther = dataOther.set_index('TimestampOther')

# 获取双方共有的时间戳
common_timestamps = dataREF.index.intersection(dataOther.index)

# 筛选出匹配的数据
filtered_ref = dataREF.loc[common_timestamps]
filtered_other = dataOther.loc[common_timestamps]

注意点:

  • 一定要先把时间戳转换成datetime类型,否则字符串匹配可能因为格式(比如时区、毫秒数)导致漏匹配
  • 大数据集优先用索引操作,比isin的线性扫描速度快很多

内容的提问来源于stack exchange,提问作者Nicklas Koldkjær

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:42