1

我想计算每个日期的任务数。这需要包括下面的完成日期和实际日期之间的日期。例如。1 月 14 日至 1 月 16 日需要在 1 月 15 日计算。因此,对于下面的示例,两个任务在这些日期处于活动状态,因此计数需要为 2。

我有一个这样的数据框:

task    Finish_Date     Actual_Date
abc      14-Jan-21       16-Jan-21
xyz      12-Jan-21       18-Jan-21

我需要将其转换为像这样的数据框:

Date        Count
12-Jan-21      1
13-Jan-21      1
14-Jan-21      2
15-Jan-21      2
16-Jan-21      2
17-Jan-21      1
18-Jan-21      1

任何帮助将不胜感激

4

1 回答 1

1

您可以为每行创建所有日期范围,然后使用 count Index.value_counts

L = [pd.Series(r.task,pd.date_range(r.Finish_Date, r.Actual_Date)) for r in df.itertuples()]
df1 = (pd.concat(L)
         .index
         .value_counts()
         .sort_index()
         .rename_axis('Date')
         .reset_index(name='Count'))

print (df1)
       Date  Count
0 2021-01-12      1
1 2021-01-13      1
2 2021-01-14      2
3 2021-01-15      2
4 2021-01-16      2
5 2021-01-17      1
6 2021-01-18      1
于 2021-02-18T09:34:40.780 回答