Grouping Consecutive Values in a Pandas DataFrame
In data analysis, we often encounter situations where data is ordered and there's a need to group consecutive values together. This task can be achieved in pandas using customized grouping techniques.
Suppose we have a DataFrame with a column named 'a' containing the following values:
[1, 1, -1, 1, -1, -1]
Our goal is to group these values into consecutive blocks, like so:
[1,1] [-1] [1] [-1, -1]
To accomplish this, we can employ the following steps:
Here's the code implementing these steps:
import pandas as pd df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) print(df) custom_series = df['a'].ne(df['a'].shift()).cumsum() print(custom_series) for i, g in df.groupby(custom_series): print(i) print(g) print(g.a.tolist())
This outputs the desired grouping:
1 a 0 1 1 1 [1, 1] 2 a 2 -1 [-1] 3 a 3 1 [1] 4 a 4 -1 5 -1 [-1, -1]
The above is the detailed content of How to Group Consecutive Values in a Pandas DataFrame?. For more information, please follow other related articles on the PHP Chinese website!