如何使用Python查找和列出两个给定月份之间的月份

如何使用Python查找和列出两个给定月份之间的月份,python,pandas,Python,Pandas,我试图找到两个月之间的月份列表 输入数据 Month1 Month2 Month_list Mar2020 Dec2020 Nov2020 Jan2021 Sep2020 Feb2021 Jun2020 Dec2020 Oct2020 Mar2021 预期产出 Month1 Month2 Month_list Mar2020 Sep2020 Mar2020,Apr2020,May2020,Jun2020,Jul2020,Aug2020

我试图找到两个月之间的月份列表

输入数据

Month1    Month2     Month_list
Mar2020   Dec2020
Nov2020   Jan2021
Sep2020   Feb2021
Jun2020   Dec2020
Oct2020   Mar2021
预期产出

Month1    Month2     Month_list

Mar2020   Sep2020    Mar2020,Apr2020,May2020,Jun2020,Jul2020,Aug2020,Sep2020
Nov2020   Jan2021    Nov2020,Dec2020,Jan2021
Sep2020   Feb2021    Sep2020,Oct2020,Nov2020,Dec2020,Jan2021,Feb2021
Oct2020   Dec2020    Oct2020,Nov2020,Dec2020
Dec2020   Mar2021    Dec2020,Jan2021,Feb2021,Mar2021
我一直在使用的代码段:

from datetime import datetime, timedelta
from collections import OrderedDict
dates = [df.Month1, df.Month2]
start, end = [datetime.strptime(_, "%Y-%m-%d") for _ in dates]
如何查找月份和年份的列表?

使用

我假设你已经分析了你的日期,因为你没有在你的问题中提到它。以下是您问题的部分解决方案:

>start=pd.to_datetime(“2021年3月”)
>>>结束=pd.to_日期时间(“2021年9月”)
>>>[d.strftime(“%b%Y”)用于pd.date_范围内的d(开始、结束、频率=“毫秒”)]
[‘2021年3月’,
‘2021年4月’,
“2021年5月”,
‘2021年6月’,
“2021年7月”,
“2021年8月”,
“2021年9月”]
您可以使用apply-

def get_date_list(x):
    return ",".join(
        item.strftime("%b %Y")
        for item in pd.date_range(x['Month1'], x['Month2'], freq="MS")
    )
    
df['Month_list'] = df.apply(lambda x: get_date_list(x), axis=1)

如果Month1和Month2列为空,则给出错误,错误:ValueError:开始和结束都不能是NaT