gpt4 book ai didi

python - 在 pandas groupby 中提取一系列相同数字中的第一个数字

转载 作者:行者123 更新时间:2023-11-28 18:28:49 25 4
gpt4 key购买 nike

我想按“类型”列对数据框进行分组,并从每个相同数字序列中获取第一个数字。以下示例说明:

A = pd.DataFrame({'type':['A','A','A','A','A','A','A','A','A','B','B','B','B','B'], 'value':[1,1,1,1,8,8,8,1,1,2,2,3,3,2]})

对于 A 组,首先是 1 的序列,然后是 8 的序列,最后是 1 的序列。对于 B 组,第一个是 2,然后是 3,最后一个是 2(只有一个元素)。 A 的结果应该是 1,8,1,B 的结果应该是 2,3,2:

type  value
0 A 1
1 A 8
2 A 1
3 B 2
4 B 3
5 B 2

请注意,使用 A.groupby('type').first() 或 A.groupby('type').(lambda x:x.unique()) 都可以,因为在这两种情况下,最后一个 1 和最后 2 个将被忽略。请注意,如果我有一个索引来标识每个系列的相同数字,这将是微不足道的。

谢谢你,感谢你的帮助,

最佳答案

def first_contiguous(s):
return s.groupby(s.ne(s.shift()).cumsum()).head(1)

A.groupby('type').value.apply(first_contiguous).reset_index('type')

enter image description here

关于python - 在 pandas groupby 中提取一系列相同数字中的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39086281/

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