我需要在我的pandas DataFrame上创建一个新系列,以计算另一个值的切换次数。
这里有个例子:
我需要一个函数来计算列new_counter
。 DataFrame按foo
和date
排序。当变量foo
或变量baz
更改时,计数器增加。
最佳答案
为连续计数器创建助手Series
,然后使用groupby
将其传递给GroupBy.ngroup
:
s = df['baz'].ne(df['baz'].shift()).cumsum()
df['counter'] = df.groupby(['foo', s]).ngroup() + 1