问题描述:我有一个数据帧,基本上有两列-成员ID和服务ID。我正在尝试计算每个ID的服务日期之间的日差的运行总和。当成员的累计总和达到365天时,日差应重置为0。你知道吗
以下是我的数据框的外观:
Member_ID Service_from Service_year Diff running_total Desired_total
540 2/1/2016 2016 0 days 00:00:00.000000000 0 days 00:00:00.000000000 0 days 00:00:00.000000000
540 3/29/2016 2016 57 days 00:00:00.000000000 57 days 00:00:00.000000000 57 days 00:00:00.000000000
540 4/26/2016 2016 28 days 00:00:00.000000000 85 days 00:00:00.000000000 85 days 00:00:00.000000000
540 5/27/2016 2016 31 days 00:00:00.000000000 116 days 00:00:00.000000000 116 days 00:00:00.000000000
540 7/1/2016 2016 35 days 00:00:00.000000000 151 days 00:00:00.000000000 151 days 00:00:00.000000000
540 8/5/2016 2016 35 days 00:00:00.000000000 186 days 00:00:00.000000000 186 days 00:00:00.000000000
540 9/13/2016 2016 39 days 00:00:00.000000000 225 days 00:00:00.000000000 225 days 00:00:00.000000000
540 10/25/2016 2016 42 days 00:00:00.000000000 267 days 00:00:00.000000000 267 days 00:00:00.000000000
540 11/22/2016 2016 28 days 00:00:00.000000000 295 days 00:00:00.000000000 295 days 00:00:00.000000000
540 12/27/2016 2016 35 days 00:00:00.000000000 330 days 00:00:00.000000000 330 days 00:00:00.000000000
540 1/24/2017 2017 28 days 00:00:00.000000000 358 days 00:00:00.000000000 358 days 00:00:00.000000000
540 2/21/2017 2017 28 days 00:00:00.000000000 386 days 00:00:00.000000000 0 days 00:00:00.000000000
540 4/11/2017 2017 49 days 00:00:00.000000000 435 days 00:00:00.000000000 77
540 4/26/2017 2017 15 days 00:00:00.000000000 450 days 00:00:00.000000000 92
540 4/26/2017 2017 0 days 00:00:00.000000000 450 days 00:00:00.000000000 92
540 5/1/2017 2017 5 days 00:00:00.000000000 455 days 00:00:00.000000000 97
540 5/1/2017 2017 0 days 00:00:00.000000000 455 days 00:00:00.000000000 97
25 9/26/2017 2017 0 days 00:00:00.000000000 0 days 00:00:00.000000000 0 days 00:00:00.000000000
25 11/26/2017 2017 61 days 00:00:00.000000000 61 days 00:00:00.000000000 61 days 00:00:00.000000000
我可以使用以下代码将每个成员的差异重置为0:
sts['diff'] = sts['service_from'].diff()
mask = sts.Member_ID != sts.Member_ID.shift(1)
sts['diff'][mask] = np.nan
sts['diff'].fillna(0, inplace=True)
然而,我无法重置时,累计金额达到365天。你知道吗
有人能帮忙吗?你知道吗
示例数据设置如下
结果是
你能做到的
这应该给你
如果不需要,也可以删除
Service_from_min
列相关问题 更多 >
编程相关推荐