↓ Skip to main content
  1. Science/
  2. Computer/

0180.Consecutive Numbers

Solution

import pandas as pd

def consecutive_numbers(logs: pd.DataFrame) -> pd.DataFrame:
    all_the_same = lambda lst: lst.nunique() == 1
    logs["is_consecutive"] = (
        logs["num"].rolling(window=3, center=True, min_periods=3).apply(all_the_same)
    )
    return (
        logs.query("is_consecutive == 1.0")[["num"]]
        .drop_duplicates()
        .rename(columns={"num": "ConsecutiveNums"})
    )

if __name__ == "__main__":
    data = {"id":[1,2,3,4,5,6,7],"num":[1,1,1,2,1,2,2]}
    df = pd.DataFrame(data)
    print(consecutive_numbers(df))