gpt4 book ai didi

python - Pandas 计算频率周期

转载 作者:行者123 更新时间:2023-11-30 22:20:44 26 4
gpt4 key购买 nike

我想对以下 df 的当前 Val 执行周期计数:

ID  Day Val
111 7 x
111 6 x
111 5 y
111 4 y
111 3 x
111 2 x
111 1 x
222 6 x
222 5 x
222 4 x
222 3 x
222 2 y
222 1 y
333 3 z
333 2 z
333 1 z
444 2 y
444 1 y
555 3 z
555 2 y
555 1 x

结果将是:

ID  Day Val freq
111 6 x 2
111 4 y 2
111 1 x 3
222 3 x 4
222 1 y 2
333 1 z 3
444 1 y 2
555 3 z 1
555 2 y 1
555 1 x 1

我尝试过:df.groupby(['ID', 'Value']).size().reset_index(name='freq') 但这没有得到我想要的结果。我不知道如何将它们分组以获得期望的结果。

非常感谢! :)

最佳答案

这是一种方法。

from itertools import groupby, accumulate

lst = [sum(1 for _ in group) for _, group in groupby(zip(df.ID, df.Val))]
cumsum = [i-1 for i in accumulate(lst)]

df.iloc[cumsum].assign(freq=lst)

# ID Day Val freq
# 1 111 6 x 2
# 3 111 4 y 2
# 6 111 1 x 3
# 10 222 3 x 4
# 12 222 1 y 2
# 15 333 1 z 3
# 17 444 1 y 2
# 18 555 3 z 1
# 19 555 2 y 1
# 20 555 1 x 1

关于python - Pandas 计算频率周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48777921/

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