【发布时间】:2021-07-30 04:45:47
【问题描述】:
我有以下数据样本:
| Hours Per Work Week | Start Date | End Date |
|---|---|---|
| 10 | 2021-08-01 | 2021-08-31 |
| 20 | 2021-08-15 | 2021-09-15 |
| 40 | 2021-09-01 | 2021-09-30 |
我需要按周获得总分布,因此预期的数据框会是这样的:
| total_hours | |
|---|---|
| week | |
| 2021-08-01 | 30 |
| 2021-08-08 | 30 |
| 2021-08-15 | 30 |
| 2021-08-22 | 30 |
| 2021-08-29 | 30 |
| 2021-09-05 | 60 |
| 2021-09-12 | 60 |
| 2021-09-19 | 40 |
| 2021-09-26 | 40 |
我知道如何获取数周的索引:
all_dates = pd.date_range('2021-08-01', '2021-09-30', freq='W')
但是如何使用周数从适合我不确定的范围内的数据集中求和。
谢谢!!
【问题讨论】:
-
查看 groupby 和 grouper。您需要执行以下操作:
df.groupby(pd.Grouper(key="Start Date", freq="1W"))["hours"].sum()