【发布时间】:2021-05-07 15:09:00
【问题描述】:
假设我有一个如下所示的 Pandas DataFrame:
ID update_time cap date diff
A 05/05/21 1:45 136 05/05/21 136
A 05/05/21 1:50 0 05/05/21 -136
A 05/05/21 2:10 1 05/05/21 1
A 05/05/21 2:15 0 05/05/21 -1
A 05/05/21 3:35 1 05/05/21 1
A 05/05/21 3:40 0 05/05/21 -1
A 05/05/21 14:40 158 06/05/21 158
A 05/05/21 14:45 0 06/05/21 -158
A 05/05/21 15:10 1 06/05/21 1
A 07/05/21 9:49 0 07/05/21 -1
B 05/05/21 1:10 500 05/05/21 500
B 05/05/21 1:15 63 05/05/21 -437
B 05/05/21 1:20 0 05/05/21 -63
B 05/05/21 1:35 8 05/05/21 8
B 05/05/21 1:40 0 05/05/21 -8
B 05/05/21 1:45 3 05/05/21 3
B 05/05/21 1:50 0 05/05/21 -3
B 05/05/21 14:35 255 06/05/21 255
B 05/05/21 14:40 0 06/05/21 -255
我想在每个 ID 和日期中将第一次删除后出现的任何 cap 值删除为 0。关于如何实现这一目标的任何指示?我在下面附上了预期的输出。
ID update_time cap date diff
A 05/05/21 1:45 136 05/05/21 136
A 05/05/21 1:50 0 05/05/21 -136
A 05/05/21 14:40 158 06/05/21 158
A 05/05/21 14:45 0 06/05/21 -158
B 05/05/21 1:10 500 05/05/21 500
B 05/05/21 1:15 63 05/05/21 -437
B 05/05/21 1:20 0 05/05/21 -63
B 05/05/21 14:35 255 06/05/21 255
B 05/05/21 14:40 0 06/05/21 -255
任何指针将不胜感激!
【问题讨论】:
-
“在它们最初下降到 0 之后”是什么意思?如果我们排除 0 之后的所有内容,为什么“A,158”存在行,为什么不考虑“A,1”行?
-
A, 158 被选中,因为“日期”列中的值发生了变化。
-
@thinrhino 这是一个重要的细节,我建议您将其添加到您的问题中!
标签: python pandas dataframe data-science