pandas中筛选不分年份的特定月份数据的最优方法
筛选跨年份指定月份的DatetimeIndex数据方案
你完全不需要重置索引,直接使用pandas DatetimeIndex内置的month属性即可快速筛选,代码如下:
# 筛选所有11月的记录,无需改动原有索引 df_nov = df[df.index.month == 11]
如果需要同时筛选多个月份,可配合isin方法实现:
# 示例:筛选所有10月、11月的记录 df_target = df[df.index.month.isin([10, 11])]
拓展说明
这种时间属性筛选是pandas时间索引的原生能力,和你提到的between_time同属便捷时间操作接口,你还可以用同样的逻辑实现其他维度的快速筛选:
- 筛选所有周一的记录:
df[df.index.weekday == 0] - 筛选所有2020年的记录:
df[df.index.year == 2020] - 筛选所有每月1号的记录:
df[df.index.day == 1]
这种方案无需修改原有数据结构,执行效率也高于先重置索引再提取字段筛选的方案。
内容的提问来源于stack exchange,提问作者Borut Flis
相关产品推荐
相关产品推荐

