【发布时间】:2021-03-31 22:52:37
【问题描述】:
假设,我的 Pandas DataFrame 如下所示:
account have
A 1
A 2
A 1
A 1
A 1
A 1
A 1
A 1
A 1
B 1
B 1
B 1
B 2
B 1
B 1
B 1
B 1
B 1
B 1
我希望结果如下所示:
account want
A NaN
A NaN
A 1
A 2
A 3
A 3
A 3
A 3
A 3
B NaN
B NaN
B 3
B 2
B 1
B 2
B 3
B 3
B 3
B 3
背后的想法是给定滚动窗口等于3。我想找到等于1 的最长连续计数。例如,在帐户A 中,在给定窗口等于3 的情况下,等于1 的最长连续计数是1(在索引2 处)。在索引3 处,结果返回2,因为给定窗口包含2, 1, 1 的值。
按照上面相同的逻辑,应用到账户B,结果将如图所示。
关于这个过程的任何建议。
非常感谢!
【问题讨论】:
-
你能解释一下为什么索引 2 的计数是 1 吗?
-
因为1的最长连续计数值只有1。给定滚动窗口为3,它包含[1,2,1]的值。因此,这里的窗口中没有连续值,它返回可用的最长连续计数,即 1。
标签: python pandas dataframe conditional-statements rolling-computation