如何解决将熊猫日期与Python日期进行比较的问题
这是我编写的python代码,但找不到我做错的地方,希望有人可以在这里帮助我调试此代码 代码:
tx_data['InvoiceDate'] = pd.to_datetime(tx_data['InvoiceDate'])
tx_uk = tx_data.query("Country=='United Kingdom'").reset_index(drop=True)
#create 3month and 6month dataframes
tx_3m = tx_uk[(tx_uk.InvoiceDate < date(2011,6,1)) & (tx_uk.InvoiceDate >= date(2011,3,1))].reset_index(drop=True)
tx_6m = tx_uk[(tx_uk.InvoiceDate >= date(2011,1)) & (tx_uk.InvoiceDate < date(2011,12,1))].reset_index(drop=True)
问题:
32 else:
33 typ = type(right).name
---> 34 raise TypeError(f"Invalid comparison between dtype={left.dtype} and {typ}")
35 return res_values
TypeError: Invalid comparison between dtype=datetime64[ns] and date
解决方法
Python datetime
类型和Numpy日期时间(由熊猫使用)不同。因此,您需要将datetime.datetime
转换为numpy.datetime64
才能解决此问题。
tx_3m = tx_uk[(tx_uk.InvoiceDate < numpy.datetime64("2011-6-1")) & (tx_uk.InvoiceDate >= numpy.datetime64("2011-3-1"))].reset_index(drop=True)
tx_6m = tx_uk[(tx_uk.InvoiceDate >= numpy.datetime64("2011-6-1")) & (tx_uk.InvoiceDate < numpy.datetime64("2011-12-1"))].reset_index(drop=True)
,
尝试一下:
tx_data['InvoiceDate'] = pd.to_datetime(tx_data['InvoiceDate']).dt.date
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。