【发布时间】:2020-02-05 04:11:02
【问题描述】:
我有一个具有唯一 ID、开始日期和结束日期的数据框。在一年的时间里,ID 可以启动、停止和重新启动。
我想在一年的过程中获得一个 groupby nunique 的 ID 计数。 目前,我可以计算 ID 开始日期的唯一值,但我如何准确地合并结束日期?
fun = pd.DataFrame({'ZIP_KEY': ['A', 'B','C', 'A', 'B', 'A'],
'start_month': [1, 2, 2, 6, 8, 10],
'end_month': [4, 3, 7, 7, 12, 12]})
fun.groupby('start_month')['ZIP_KEY'].nunique()
start_month
1 1
2 2
3 0
4 0
5 0
6 1
7 0
8 1
9 0
10 1
11 0
12 0
基本上,如果一个 ID 在 1 月开始并在 3 月结束,我希望它包含在 2 月和 3 月的计数中,而不仅仅是 1 月,这是我当前方法的操作方式。
期望的输出:
start_month
1 1
2 3
3 3
4 2
5 1
6 2
7 2
8 1
9 1
10 2
11 2
12 2
非常感谢任何提示或帮助!
【问题讨论】: