在python中,获得数据帧中与每一行相关的特定日期窗口中的行的唯一计数的最佳方法是什么?

2024-05-19 22:10:59 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个像下面的前2列(count&;dt)这样的数据帧,我希望得到在7天窗口中看到的不同的dts的数量,直到(但不包括)每个dt(例如,num_distinct_dts_prior_7_days中显示的内容)。你知道吗

 ix count          dt   num_distinct_dts_prior_7_days
0       6  2017-12-01                               0
1       2  2017-12-02                               1
2       2  2017-12-04                               2
3       9  2017-12-05                               3
4       4  2017-12-10                               2
5       7  2017-12-14                               1
6       2  2017-12-28                               0
7       3  2017-12-29                               1

这是该表的简化版本;最终,我的数据框架将有一个额外的id列,并且我希望找到每个id之前的7天窗口中看到的不同dts的数量。如果在整个数据集中没有适用的解决方案,我很乐意迭代每个idO(趋向于数千))。你知道吗


Tags: 数据版本框架id内容数量countdt
1条回答
网友
1楼 · 发布于 2024-05-19 22:10:59

3将是7数字范围的中位数,因此我们可以使用

df['expected'] = 3-(3 - df.groupby(df.index // 7).cumcount()).abs()

  ix  count          dt  num_distinct_dts_prior_7_days  expected
0   0      6  2017-12-01                              0         0
1   1      2  2017-12-02                              1         1
2   2      2  2017-12-04                              2         2
3   3      9  2017-12-05                              3         3
4   4      4  2017-12-10                              2         2
5   5      7  2017-12-14                              1         1
6   6      2  2017-12-28                              0         0
7   7      3  2017-12-29                              1         0

相关问题 更多 >