簡體   English   中英

如何提取兩個日期之間的月份?

[英]How to extract months between two dates?

(使用 python)我想提取兩個日期之間的月份並將它們放入另一個列表或 dataframe。日期位於不同的列中,分別命名為“開始日期”和“結束日期”。

我試過以下。

df3.apply(lambda x: pd.date_range(x.df3['startdate'],x.df3['enddate'], freq='MS').strftime("%Y%m"))


columns'startdate' looks like 2010-12-31, 
columns 'enddate' looks like 2011-04-12,

我想要這樣的東西:

2010-12
2011-01
2011-02
2011-03
2011-04

你能幫我解決這個問題嗎?

Is.dt.month 你在找什么?

pd.to_datetime(df['startdate']).dt.month
pd.to_datetime(df['enddate']).dt.month

嘗試這個。 下面的代碼將檢索下個月的天數並增加開始日期。

from datetime import datetime, timedelta
from calendar import monthrange

def months():
    start_date = datetime.strptime("2010-12-31", "%Y-%m-%d")
    end_date = datetime.strptime("2011-04-12", "%Y-%m-%d")  
    
    while start_date < end_date:
        print (start_date.strftime("%Y-%m"))
        days = monthrange(start_date.year, start_date.month + 1 if start_date.month < 12 else 1)[1]
        start_date = start_date + timedelta(days=days)

    print (end_date.strftime("%Y-%m"))

months()

Output

2010-12
2011-01
2011-02
2011-03
2011-04

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM