数据分析--pandas 判断数据是否连续,连续的长度
pandas 判断数据是否连续,连续的长度
在筛选数据的时候,会需要根据数据是否连续,或者连续的长度来作为筛选数据的标准。
def calculate_turning_point(series):
"""
计算转折点
Args:
series: 数据列
Returns:
转折点的位置 从0开始,eg 0,2,9,10
"""
mk = {i:i for i in series.unique()}
down = ((series - series.shift()) > 0).map(lambda x: mk[x])
group_len = [len(list(v)) for k, v in itertools.groupby(''.join(down))]
tx = np.cumsum(group_len) - 1
return tx
如果计算连续值的长度 用tx-tx.shift()就可以
判断连续的标准mk,可以根据自定义需求就行修改
在上面的代码中 根据数值相同来判定连续
根据前后差值判断数据是否连续
# col 是pd.Series类型的数据 根据前后差值判定是否连续
xcol = col - col.shift()
flag = xcol > th # th为阈值
calculate_turning_point(flag)