gpt4 book ai didi

python - 查找两个日期列之间的所有月份并为每个月生成行

转载 作者:行者123 更新时间:2023-12-04 23:12:00 26 4
gpt4 key购买 nike

我有一个包含两个日期列的数据框:

   Date1       Date2
2018-10-02 2018-12-21
2019-01-20 2019-04-30

等等

我想创建第三列,它基本上是一个包含两个日期之间所有月份的列,如下所示:
   Date1       Date2           months
2018-10-02 2018-12-21 201810
2018-10-02 2018-12-21 201811
2018-10-02 2018-12-21 201812
2019-01-20 2019-04-30 201901
2019-01-20 2019-04-30 201902
2019-01-20 2019-04-30 201903
2019-01-20 2019-04-30 201904

我怎样才能做到这一点?我尝试使用这个公式:
df['months']=df.apply(lambda x: pd.date_range(x.Date1,x.Date2, freq='MS').strftime("%Y%m"))

但我没有得到想要的结果。请帮忙。谢谢

最佳答案

使用 merge

final = df.merge(df.apply(lambda s: pd.date_range(s.Date1, s.Date2, freq='30D'), 1)\
.explode()\
.rename('Months')\
.dt.strftime('%Y%m'),
left_index=True,
right_index=True)
   Months       Date1       Date2
0 201810 2018-10-02 2018-12-21
0 201811 2018-10-02 2018-12-21
0 201812 2018-10-02 2018-12-21
1 201901 2019-01-20 2019-04-30
1 201902 2019-01-20 2019-04-30
1 201903 2019-01-20 2019-04-30
1 201904 2019-01-20 2019-04-30

关于python - 查找两个日期列之间的所有月份并为每个月生成行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58276737/

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