【发布时间】:2023-03-04 22:23:01
【问题描述】:
我想根据来自 2 个单独数据帧的索引日期对特征进行分组和求和。
我的意思是,让我们假设我有以下数据框:
| MemberID | indexDate | yValue |
|---|---|---|
| a | 2020-11-02 | 2 |
| a | 2019-02-03 | 3 |
| b | 2018-02-03 | 2 |
| a | 2020-02-03 | 9 |
现在,最初,我使用以下代码创建了另一行,其中包含查找日期(我想要汇总特征的时间段):
df['lookupDate'] = df['indexDate'] - pd.DateOffset(years=1)
得到如下数据框:
| MemberID | indexDate | lookupDate | yValue |
|---|---|---|---|
| a | 2020-11-02 | 2019-11-02 | 2 |
| a | 2019-02-03 | 2018-02-03 | 3 |
| b | 2018-02-03 | 2017-02-03 | 2 |
| a | 2020-02-03 | 2019-02-03 | 9 |
我有另一个数据框,其中包含我想与上述数据框合并的特征值。特征数据框如下所示:
| MemberID | serviceDate | feature1 | feature2 | feature3 |
|---|---|---|---|---|
| a | 2020-09-02 | 1 | 1 | 0 |
| a | 2019-03-03 | 0 | 1 | 1 |
| b | 2018-05-03 | 0 | 0 | 1 |
| a | 2020-06-03 | 1 | 0 | 0 |
现在,我想合并这样,我可以查看第一个数据帧的每一行,并将 lookupDate 视为周期开始日期,将 indexDate 视为第二个数据的周期结束日期框架。
我的意思是,对于 MemberID 'a',对于第一个数据帧,周期开始日期为 '2019-11-02',周期结束日期为 '2020-11 -02'。现在,我将使用它查看第二个数据框和 groupby MemberID 并总结 MemberID 'a' 的特征,这样它是 groupby 并在周期开始和周期结束日期内总结。
在这里,从第二个数据帧中,将选择 MemberID 'a' 的第一行和最后一行,因为 serviceDate 介于 '2019-11-02' 和 '2020-11-02' 之间。所以,对于第一个数据框的第一行,我想要一个结果:
| MemberID | indexDate | lookupDate | feature1 | feature2 | feature3 | yValue |
|---|---|---|---|---|---|---|
| a | 2020-11-02 | 2019-11-02 | 2 | 1 | 0 | 2 |
现在,我想对具有不同周期开始和周期结束日期的每一行执行此操作。
【问题讨论】:
-
为什么在输出中是
yValue=2而不是yValue=4? -
仅添加要素数据框中的要素。有 2 个数据框,因此第一个数据框不会更改,而另一个数据框正在汇总。
标签: python pandas dataframe date pandas-groupby