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

Python中筛选DataFrame的12月日期数据,代码失效如何解决?

解决方法

你的代码出错原因有两个:

  • df['Date'][4:6]是对整个Series做行切片,不是提取每个日期的月份部分
  • Date列是数字类型,无法直接进行字符串切片操作

给你两种可行的筛选方式:

方法一:转字符串提取月份

把数字类型的Date转为字符串,提取对应月份的位置进行比较:

df = df[df['Date'].astype(str).str[4:6] == '12']

原理:astype(str)将数字转为字符串,str[4:6]对每个日期字符串提取第4到第6位(对应YYYYMMDD里的MM部分),再和字符串'12'匹配筛选。

方法二:数学运算提取月份

不用类型转换,通过整除和取模直接提取月份:

df = df[(df['Date'] // 100) % 100 == 12]

原理:df['Date'] // 100去掉日期的最后两位(日部分),得到YYYYMM格式的数字,再用%100取最后两位得到月份,和数字12比较即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:42:16