gpt4 book ai didi

python - 如何分隔 Pandas 中的顺序组?

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:43 24 4
gpt4 key购买 nike

这个问题可能很奇怪,所以这里有一个例子。

假设我的数据如下所示:

A  B  
a 2
a 1
a 1
b 3
b 1
a 4
c 3
c 6
c 7

如您所见,有 3 个元素 a、b、c,我们可以像这样进行分组和聚合:

a  8 
b 4
c 16

但我真正想做的是,我想“分离”“组内”。所以想要的结果是:

a  4 
b 4
a 4
c 16

这意味着第一个连续的“a”组和后面出现的第二个“a”被区别对待。让我简单地通过列表向您展示。

[[a,a,a],[b,b],[a],[ccc]] 

重点是我们必须考虑顺序。不是只用pandas cumcount,它只考虑出现次数。我想划分每个“序列”,即使在同一个元素组中也是如此。(第一个 aaa 和第二个 aaa 不同)

我认为这在 pandas 中并不那么简单,尽管我只是通过明确的基于函数的逻辑来避免完成这项工作。简而言之,我想更简单地做到这一点。有什么想法吗?

最佳答案

您可以使用shift-cumsum 模式

>>> df.groupby((df['A'] != df['A'].shift()).cumsum(), as_index=False).agg(
{'A': 'first', 'B': 'sum'})
# Output:
# A B
# 0 a 4
# 1 b 4
# 2 a 4
# 3 c 16

关于python - 如何分隔 Pandas 中的顺序组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343602/

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