我想根据组之间的差异构造数据组。例如,考虑以下
import pandas as pd
df = pd.DataFrame([['a', 1],['a', 1],['b', 1],['a', 2],['b', 3],['b', 3],['b', 3],['b', 4],['a', 5],['a', 5],['a', 6],['b', 6]], columns=['id', 'x'])
df['diff'] = df.groupby(['id', 'x'])['x'].diff()
现在,我可以(df['diff'] != 0).astype(int).cumsum()
,这将根据变化的x
产生组。但是,这不考虑id
的组。我似乎无法弄清楚如何通过groupby
运行它。
使用groupby
和cumsum
表达式,可以预订一个布尔值,而不是一系列布尔值。此外,我无法使用int
将其转换为astype
。我想可以做到这一点,但不能做到这一点。非常感谢您的帮助。