![](/img/trans.png)
[英]How to find difference in months between 2 columns and save it in a new column?
[英]Find difference between 2 strings in months
我正在嘗試解決一個問題,我需要找到 2 個字符串之間的月數差異
"January 2022"
"July 2022"
Answer=7
我查看了整個 inte.net 以找到答案但無法找到答案,主要是回答使用的日期時間庫
還有其他方法可以解決這個問題嗎?
我試圖像這樣創建一個 static 字典,但無法繼續
m={
1: "January",
2: "February",
3: "March",
4: "April",
5: "May",
6: "June",
7: "July",
8: "August",
9: "September",
10: "October",
11: "November",
12: "December"
}
起初我嘗試使用datetime
時間模塊,但后來發現更簡單的方法。
month_ids = dict({
"January":1,
"February":2,
"March":3,
"April":4,
"May":5,
"June":6,
"July":7,
"August":8,
"September":9,
"October":10,
"November":11,
"December":12
})
def to_months(month_year):
month_name, year = month_year.strip().split()
return (int(year) * 12) + month_ids[month_name.strip()]
print(to_months("July 2022") - to_months("January 2022"))
注意:根據上述邏輯,7 月/1 月的黑白差異為 6,因為此代碼不包括上個月。 根據您的需要,您可以在需要時包括 +1。
使用dateutil
:
from dateutil import parser, relativedelta
def delta_months(a, b):
""" returns negative delta if b > a """
a = parser.parse(a)
b = parser.parse(b)
delta = relativedelta.relativedelta(a, b)
delta = delta.years * 12 + delta.months
return delta
a = 'January 2022'
b = 'March 2022'
print(delta_months(a, b)) # -2
print(delta_months(b, a)) # 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.