[已解决]datetime.date is coerced to a datetime. In the future pandas will not coerce, and ‘the values

最近使用pandas筛选日期时,
比如我的数据包含列名为 trade_date,从 20010101 - 20221031 的数据,我要筛选出 20190901 - 20210901 的数据,那么,先如下转换数据类型:

s_date = datetime.datetime.strptime('20190901', '%Y%m%d').date()
e_date = datetime.datetime.strptime('20210901', '%Y%m%d').date()
df = df[(df['trade_date'] >= s_date) & (df['trade_date'] <= e_date)]

结果在使用上面代码的时候,报错如下:

datetime.date  is coerced to a datetime. In the future pandas will not coerce, and 'the values will not compare equal to the 'datetime.date'. To retain the current behavior, convert the 'datetime.date' to a datetime with 'pd.Timestamp'.

解决方案:
第一种(用此方法已解决)

data[(data.日期>pd.Timestamp(s_date))&(data.日期<pd.Timestamp(e_date))]

第二种

data[(data['日期'].lt(pd.Timestamp(e_date)))&(data['日期'].gt(pd.Timestamp(s_date)))]

第三种

id_a=data.日期.apply(lambda x: x.year ==2020  and x.month==5)
data[id_a]

第四种

id_b=data.日期.between(pd.Timestamp(s_date),pd.Timestamp(e_date))
data[id_b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今晚务必早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值