【发布时间】:2022-01-10 20:24:15
【问题描述】:
我有两个数据框 df1:
Country_Code FY Churned_month Churned_Subscribers Resubscribed_month Resubscribed_Subscribers
AU FY12 Apr-2012 1 0 0.0
AU FY12 Jul-2012 6 Jul-2012 3.0
AU FY13 Apr-2013 1 0 0.0
AU FY13 Aug-2013 13 0 0.0
AU FY13 Nov-2012 1 0 0.0
AU FY14 Jan-2014 1 Jun-2014 1.0
AU FY15 Apr-2015 45 Apr-2015 22.0
AU FY15 Apr-2015 45 Jun-2015 7.0
AU FY15 Apr-2015 45 May-2015 6.0
AU FY15 Aug-2015 14 Aug-2015 5.0
AU FY15 Feb-2015 17 Apr-2015 3.0
AU FY15 Feb-2015 17 Feb-2015 10.0
AU FY15 Feb-2015 17 Jun-2015 1.0
df2:
start_date end_date fy_year_vc
2021-09-01 2022-08-31 FY22
2020-10-28 2021-08-31 FY21
2019-09-01 2020-10-27 FY20
2018-09-01 2019-08-31 FY19
2017-09-01 2018-08-31 FY18
2016-09-01 2017-08-31 FY17
2015-09-01 2016-08-31 FY16
2014-09-02 2015-08-31 FY15
2013-09-12 2014-09-01 FY14
2012-09-04 2013-09-11 FY13
2011-12-12 2012-09-03 FY12
2010-10-18 2011-12-11 FY11
2009-10-05 2010-10-17 FY10
我想将 df2 应用于 df1 以在 Churned_month 列中查找缺失的月份
例如:对于 Churned_month Apr-2012 检查 df2 中 FY12 的结束日期,即 2012-09-03,因此缺少的月份差异是 May-2012、Jun-2012、July-2012、Aug-2012, 2012 年 9 月至 9 月,结束日期为 2012 年 9 月 3 日。因此,生成的数据框如下所示:
Country_Code FY Churned_month Churned_Subscribers Resubscribed_month Resubscribed_Subscribers
AU FY12 Apr-2012 1 Apr-2012 0.0
AU FY12 May-2012 0 May-2012 0
AU FY12 June-2012 0 Jun-2012 0
AU FY12 Jul-2012 0 July-2012 0
AU FY12 Aug-2012 0 Aug-2012 0
AU FY12 Sep-2012 0 Sep-2012 0
AU FY12 Jul-2012 6 Jul-2012 3.0
AU FY13 Apr-2013 1 0 0.0
我无法弄清楚如何实现这一点。我尝试将 index 设置为 Churned_month 但得到所需的输出。请帮忙
【问题讨论】:
-
为什么
FY_12有重复的行Jul-2012流失月份,一个有 0 个流失订阅者,一个有 6 个流失订阅者?不应该是只有 6 个流失订阅者的行吗? -
对于
FY15的三个Apr-2015行应该怎么办? df2 中的开始日期和结束日期之间是否存在日期范围,在结果数据框中重复三遍?
标签: python pandas dataframe numpy datetime