如何仅利用日期变量的年份部分筛选数据集?
筛选指定年份的日期数据解决方案
核心思路
完全不需要生成所有月日组合,直接针对年份部分处理即可,效率更高且避免格式错误。以下是几种常见工具的实现方法:
Python(Pandas)场景
假设你的数据集是Pandas DataFrame,日期列名为date:
- 字符串前缀匹配(日期列是字符串类型)
直接筛选以2014-或2015-开头的行:
filtered_df = df[df['date'].str.startswith(('2014-', '2015-'))]
- 日期类型提取年份(推荐,更灵活)
先将列转换为datetime类型,再提取年份筛选:
import pandas as pd df['date'] = pd.to_datetime(df['date']) filtered_df = df[df['date'].dt.year.isin([2014, 2015])]
Excel场景
假设日期数据在A列:
- 方法1:新增辅助列,用
LEFT(A2,4)提取年份,然后筛选该列值为2014或2015的行; - 方法2:直接使用「文本筛选」,选择「开头是」,输入
2014和2015进行筛选。
SQL场景
假设表名为your_table,日期列名为date_column:
- 通过日期函数提取年份(不同数据库语法略有差异,以下是通用示例):
SELECT * FROM your_table WHERE DATEPART(year, date_column) IN (2014, 2015);
- 字符串截取(适用于固定格式的日期字符串):
SELECT * FROM your_table WHERE LEFT(date_column, 4) IN ('2014', '2015');
为什么不推荐生成月日组合?
这种方法不仅效率极低(需要生成730+个日期字符串),还容易因为循环时的格式拼接错误(比如你遇到的多余空格)导致筛选失效,完全没必要舍近求远。
内容的提问来源于stack exchange,提问作者KL1
相关产品推荐
相关产品推荐

