gpt4 book ai didi

python - 在 Pandas 中以矢量化方式计算特定连续相等值的数量

转载 作者:太空狗 更新时间:2023-10-29 18:04:33 24 4
gpt4 key购买 nike

假设我们有以下 pandas DataFrame:

In [1]:
import pandas as pd
import numpy as np

df = pd.DataFrame([0, 1, 0, 0, 1, 1, 0, 1, 1, 1], columns=['in'])
df
Out[1]:
in
0 0
1 1
2 0
3 0
4 1
5 1
6 0
7 1
8 1
9 1

如何在 pandas 中以向量化的方式计算连续的个数?我想要这样的结果:

   in  out
0 0 0
1 1 1
2 0 0
3 0 0
4 1 1
5 1 2
6 0 0
7 1 1
8 1 2
9 1 3

类似于在特定条件下重置的矢量化 cumsum 操作。

最佳答案

您可以这样做(致谢:how to emulate itertools.groupby with a series/dataframe?):

>>> df['in'].groupby((df['in'] != df['in'].shift()).cumsum()).cumsum()
0 0
1 1
2 0
3 0
4 1
5 2
6 0
7 1
8 2
9 3
dtype: int64

关于python - 在 Pandas 中以矢量化方式计算特定连续相等值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com