gpt4 book ai didi

python - 如何计算 Pandas 中的一系列值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:10 25 4
gpt4 key购买 nike

假设在 Pandas 中我有一个这样的数据框:

index    value

1 1
2 0
3 1
4 1
5 0
6 1

我想计算一个特定的值序列发生了多少次,比如 0 在 1 之后出现了多少次(即 [1, 0] 发生了多少次,在上面的例子中是两次) ,或者 [1,0,1] 发生了多少次(再次,两次)。

有没有一种方法可以不使用 for 循环来做到这一点?

最佳答案

通用解决方案

def tuplify(s, k):
return list(zip(*[s.values[i:].tolist() for i in range(k)]))

s = pd.Series([1, 0, 1, 1, 0, 1])

pd.value_counts(tuplify(s, 3))

(1, 0, 1) 2
(1, 1, 0) 1
(0, 1, 1) 1
dtype: int64

您可以将其分配给一个变量并只获取您想要的元组。

counts = pd.value_counts(tuplify(s, 3))
counts[(1, 0, 1)]

2

分解

tuplify(s, 3)

[(1, 0, 1), (0, 1, 1), (1, 1, 0), (1, 0, 1)]

元组是可散列的并且可以被计数,因此 pd.value_counts 的工作方式如上所示。

关于python - 如何计算 Pandas 中的一系列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41153949/

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