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

如何使用Pandas筛选出包含指定年份列表中任意年份记录的事件全量数据

筛选符合年份条件的事件完整记录

需求说明

我们有一份事件与对应年份的数据集,需要筛选出至少在指定年份列表(示例为[2012, 2013])中有一条记录的事件的所有数据——也就是说,只要某个事件在目标年份里有过记录,它的所有年份记录都要保留,不管其他年份是否在目标列表中。

原始数据集

EventYear
Event 12012
Event 12013
Event 12014
Event 12015
Event 22012
Event 22013
Event 32014
Event 32015
Event 32014
Event 42012
Event 42015
Event 52013

筛选后结果

按照需求处理后,最终保留的数据如下:

EventYear
Event 12012
Event 12013
Event 12014
Event 12015
Event 22012
Event 22013
Event 42012
Event 42015
Event 52013

实现示例

1. SQL 实现

如果你的数据存储在数据库中,可以用子查询先找出符合条件的事件,再关联获取全部记录:

SELECT ed.*
FROM event_data ed
INNER JOIN (
    -- 先筛选出在目标年份有记录的事件
    SELECT DISTINCT Event
    FROM event_data
    WHERE Year IN (2012, 2013)
) eligible ON ed.Event = eligible.Event;

2. Python Pandas 实现

如果用Python处理数据,可以通过两步筛选完成:

import pandas as pd

# 构造原始数据(实际场景可从文件读取)
data = pd.DataFrame({
    'Event': ['Event 1', 'Event 1', 'Event 1', 'Event 1', 'Event 2', 'Event 2', 'Event 3', 'Event 3', 'Event 3', 'Event 4', 'Event 4', 'Event 5'],
    'Year': [2012, 2013, 2014, 2015, 2012, 2013, 2014, 2015, 2014, 2012, 2015, 2013]
})

# 指定目标年份列表
target_years = [2012, 2013]

# 第一步:找出所有符合条件的事件
eligible_events = data[data['Year'].isin(target_years)]['Event'].unique()

# 第二步:获取这些事件的全部记录
result = data[data['Event'].isin(eligible_events)]

# 打印结果
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:22:34