gpt4 book ai didi

python - 为什么我不能从下一个日期期间减去一个日期期间并转换为整数?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:46 25 4
gpt4 key购买 nike

我正在尝试确定两个月之间的差值是偶数月还是奇数月。

我使用了命令:

import pandas as pd
(pd.to_datetime('2019-01-01').to_period('M') - pd.to_datetime('2018-08-01').to_period('M')) % 2

这似乎在 python 3.6.7 中有效,但在另一个 python 3.7.3 环境中我得到错误:

>>> import pandas as pd
>>> (pd.to_datetime('2019-01-01').to_period('M') - pd.to_datetime('2018-08-01').to_period('M')) % 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for %: 'MonthEnd' and 'int'

我正在尝试弄清楚哪个包会有所不同,或者是否有另一种方法可以实现我想要的功能,并且在两个版本中都适用?

我查看了我安装的软件包,发现有一些版本差异,但我不知道哪个会有所不同。

不行的环境有python 3.7.3、pandas 0.24.2、numpy-base 1.16.2。工作环境有 python 3.6.7,pandas 0.22.0,但没有任何版本的 numpy-base。两者都有 python-dateutil 2.8.0 和 numpy 1.16.2。

最佳答案

问题是 Period Subtraction在 Pandas 0.24+ 中:

Subtraction of a Period from another Period will give a DateOffset. instead of an integer (GH21314)

解决方案是属性.n:

a = (pd.to_datetime('2019-01-01').to_period('m') - pd.to_datetime('2018-08-01').to_period('m'))

print (a)
<5 * MonthEnds>

print (a.n)
5

print (a.n % 2)
1

关于python - 为什么我不能从下一个日期期间减去一个日期期间并转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56016233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com