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

如何统计df1的Date列中存在于df2的Date列的值数量

解决方法

要统计df1的Date列中同时存在于df2的Date列中的值的数量(非唯一值计数),可以用以下两种实用方法实现:

方法一:Pandas自带的isin()方法(简洁直观)

先构造与你提供的数据一致的示例DataFrame:

import pandas as pd

df1 = pd.DataFrame({
    'Date': ['2016-03-21 20:10:00', '2016-03-22 21:09:00', '2016-05-03 17:05:00']
})

df2 = pd.DataFrame({
    'Date': ['2016-03-21 20:10:00', '2016-03-21 21:00:00', '2016-03-22 21:09:00', '2016-05-03 17:05:00', '2017-06-01 16:10:00']
})

执行统计:

# 判断df1每个Date是否在df2中,求和得到符合条件的数量
match_count = df1['Date'].isin(df2['Date']).sum()
print(match_count)  # 输出:3

原理:isin()返回布尔Series,每个元素对应df1的Date值是否存在于df2的Date列;sum()将布尔值转为1(True)和0(False),求和后就是符合条件的总数量。如果df1中有重复的Date值,只要该值在df2中存在,重复次数也会被计入统计。

方法二:利用集合查找(大数据量更高效)

如果数据集规模较大,集合的查找效率更高(时间复杂度O(1)),可以用以下方式:

# 将df2的Date列转为集合
df2_dates = set(df2['Date'])
# 遍历df1的Date,统计存在于集合中的数量
match_count = sum(1 for date in df1['Date'] if date in df2_dates)
print(match_count)  # 输出:3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:25:22