【发布时间】:2019-12-21 17:31:51
【问题描述】:
我有一个数据框df1,我想在给定三个条件的情况下计算两个日期之间的天数,并创建一个新列DiffDays,以天数为单位。
1) 当Yes 为1 时
2) 当Value 中的值不为零时
3) 必须是 UserId 特定的(可能带有 groupby())
df1 = pd.DataFrame({'Date':['02.01.2017', '03.01.2017', '04.01.2017', '05.01.2017', '01.01.2017', '02.01.2017', '03.01.2017'],
'UserId':[1,1,1,1,2,2,2],
'Value':[0,0,0,100,0,1000,0],
'Yes':[1,0,0,0,1,0,0]})
例如,当Yes 为 1 时,计算Value 为非零时(即 05.01.2017)和Yes 为 1 时(即 02.01.2017)之间的日期。结果是第 3 行中 UserId 的三天。
预期结果:
Date UserId Value Yes DiffDays
0 02.01.2017 1 0.0 1 0
1 03.01.2017 1 0.0 0.0 0
2 04.01.2017 1 0.0 0.0 0
3 05.01.2017 1 100 0.0 3
4 01.01.2017 2 0.0 1 0
5 02.01.2017 2 1000 0.0 1
6 03.01.2017 2 0.0 0.0 0
我在 Stackoverflow 上找不到任何关于此的内容,并且不知道如何开始。
【问题讨论】:
-
哪两个日期的区别..?
-
@MarkWang 满足上述三个条件的日期的差异。当
Yes为1 时,计算Value为非零时(05.01.2017)和Yes为1 时(即02.01.2017)之间的日期。结果是第 3 行中 UserId 的三天。
标签: python pandas datetime time