我有一个PyparkDataframe,看起来像这样:
import pandas as pd
foo = pd.DataFrame({'group': ['a','a','a','b','b','c','c','c'], 'value': [1,2,3,4,5,2,4,5]})
我想创建一个新的二进制列 is_consecutive
指示 value
列是连续的 group
.
输出应如下所示:
foo = pd.DataFrame({'group': ['a','a','a','b','b','c','c','c'], 'value': [1,2,3,4,5,2,4,5],
'is_consecutive': [1,1,1,1,1,0,0,0]})
我怎么能在Pypark做到这一点?
2条答案
按热度按时间cgvd09ve1#
您可以使用lead并将其与现有值相减,然后找到窗口的最大值,完成后,设置一个条件return 0 is max is>1,否则返回1
5us2dqdw2#
你可以用
lag
要将值与前一行进行比较并检查它们是否连续,请使用min
确定给定组中的所有行是否连续。