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

Pandas按月份日期筛选DataFrame返回空结果的问题排查

问题排查与解决方案

核心问题

你提取的month、day列均为整数类型,筛选时使用字符串进行匹配,类型不匹配导致匹配失败,返回空DataFrame:

  • 从datetime对象的.month、.day属性获取的值默认为整数类型(int),对应值为9、2
  • 筛选条件写的'9'、'2'是字符串类型(str),int和str的等值判断结果为False,没有符合条件的数据被筛选出来。

修复方案

方案1:修改筛选条件为整数匹配

直接把筛选条件的引号去掉,用整数匹配即可:

data = data[data['month']==9]
data = data[data['day']==2]

方案2:提取日期值时统一转为字符串

如果业务需要month、day列是字符串格式,提取时做类型转换即可:

data['month']= data['time'].apply(lambda x: str(x.month))
data['day']= data['time'].apply(lambda x: str(x.day))

更高效的简化写法

无需单独提取month、day列,直接通过pandas内置的datetime属性筛选,性能更高且代码更简洁:

data = data[(data['time'].dt.month == 9) & (data['time'].dt.day == 2)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:05