Reputation: 105
I have a table that looks like this:
Dates, Minutes
1/24/2020 2:58:04 PM, 0
1/24/2020 3:13:04 PM, 0
1/27/2020 10:04:09 AM, 3
1/27/2020 10:19:09 AM, 0
1/27/2020 10:34:09 AM, 0
1/27/2020 10:49:10 AM, 1
1/27/2020 11:04:09 AM, 0
1/27/2020 11:19:09 AM, 1
1/27/2020 11:34:09 AM, 1
1/27/2020 11:49:09 AM, 0
1/27/2020 12:04:09 PM, 13
1/27/2020 12:19:09 PM, 0
1/27/2020 12:34:09 PM, 0
1/27/2020 12:49:09 PM, 0
1/27/2020 1:04:09 PM, 11
1/27/2020 1:19:09 PM, 26
1/27/2020 1:34:09 PM, 41
1/27/2020 1:49:09 PM, 0
1/27/2020 2:04:09 PM, 0
1/27/2020 2:19:09 PM, 12
1/27/2020 2:34:09 PM, 0
I am looking to check if the difference between the current row from the previous row is greater than, or equal to, 15 and if it is then to change the value to 15. So the new table would look like:
Dates, Minutes
1/24/2020 2:58:04 PM, 0
1/24/2020 3:13:04 PM, 0
1/27/2020 10:04:09 AM, 3
1/27/2020 10:19:09 AM, 0
1/27/2020 10:34:09 AM, 0
1/27/2020 10:49:10 AM, 1
1/27/2020 11:04:09 AM, 0
1/27/2020 11:19:09 AM, 1
1/27/2020 11:34:09 AM, 1
1/27/2020 11:49:09 AM, 0
1/27/2020 12:04:09 PM, 13
1/27/2020 12:19:09 PM, 0
1/27/2020 12:34:09 PM, 0
1/27/2020 12:49:09 PM, 0
1/27/2020 1:04:09 PM, 11
1/27/2020 1:19:09 PM, 15*
1/27/2020 1:34:09 PM, 15*
1/27/2020 1:49:09 PM, 0
1/27/2020 2:04:09 PM, 0
1/27/2020 2:19:09 PM, 12
1/27/2020 2:34:09 PM, 0
*=value changed
Upvotes: 1
Views: 160
Reputation: 23099
Another method using .loc
& shift
df.loc[(df['Minutes'] - df['Minutes'].shift(1)).ge(15),'Minutes'] = 15
print(df)
Dates Minutes
0 1/24/2020 2:58:04 PM 0
1 1/24/2020 3:13:04 PM 0
2 1/27/2020 10:04:09 AM 3
3 1/27/2020 10:19:09 AM 0
4 1/27/2020 10:34:09 AM 0
5 1/27/2020 10:49:10 AM 1
6 1/27/2020 11:04:09 AM 0
7 1/27/2020 11:19:09 AM 1
8 1/27/2020 11:34:09 AM 1
9 1/27/2020 11:49:09 AM 0
10 1/27/2020 12:04:09 PM 13
11 1/27/2020 12:19:09 PM 0
12 1/27/2020 12:34:09 PM 0
13 1/27/2020 12:49:09 PM 0
14 1/27/2020 1:04:09 PM 11
15 1/27/2020 1:19:09 PM 15
16 1/27/2020 1:34:09 PM 15
17 1/27/2020 1:49:09 PM 0
18 1/27/2020 2:04:09 PM 0
19 1/27/2020 2:19:09 PM 12
20 1/27/2020 2:34:09 PM 0
Upvotes: 1
Reputation: 323226
Let us do
df.Minutes = df.Minutes.mask(df.Minutes.diff().ge(15), 15)
Upvotes: 2