gpt4 book ai didi

python - 如何计算月份循环差异尽管年?

转载 作者:行者123 更新时间:2023-11-28 22:38:09 27 4
gpt4 key购买 nike

我正在尝试计算月份之间的循环距离,以了解两个进程之间的解耦。所以我有一个包含一些列的数据框,我不会以循环方式计算它们之间的差异。月份不是日期,只是从 1 到 12 的数字。比方说

month1 month2
6 8
12 3
8 5
1 11

如果我这样做

month2 - month1 我有一些问题:

8 - 6 = 25 - 8 = -3 没问题,但是

3 - 12 = -911 - 1 = 10 应该是 3-2分别(12月和3月的区别,1月和11月的区别)

所以我试试

monthdelta.monthmod(start, end)

但开始和结束必须是日期,似乎无法定义一个日期,只用月份忽略年和日。如果我将 month1 和 month2 定义为具有日-月-年的日期,则十二月和一月之间的差异将是 11 而不是我需要的 1。

所以可以将数字定义为月份?或类似使用 monthmod 的东西尽管年份?或者只是用数字来做的其他方法?有什么建议吗?

最佳答案

您可以使用:

def diff(month1, month2):
m_min = min(month1, month2)
m_max = max(month1, month2)
diff = m_max - m_min
return diff if diff <= 6 else m_min + 12 - m_max

这给出了预期的结果:

>>> diff(1, 11)
2
>>> diff(6, 8)
2
>>> diff(8, 5)
3
>>> diff(12, 3)
3

关于python - 如何计算月份循环差异尽管年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35891200/

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