gpt4 book ai didi

python - 如何找到pandas数据框中连续值的最后一个值?

转载 作者:行者123 更新时间:2023-12-01 00:49:46 25 4
gpt4 key购买 nike

我有一个像这样的数据框

df:
col1 col2
1 10
1 20
2 11
3 33
1 20
1 10
2 24
3 21
3 28

我想按 col1 上有连续值的数据帧进行分组,并为每个连续组取最后一个值,

最终的数据框应如下所示:

df
col1 col2
1 20
2 11
3 33
1 10
2 24
3 28

我尝试过类似的方法:

 df['b_new'] = df.groupby('col1')['col2'].transform('last')

但它缺少连续条件。

如何使用 pandas/python 以最有效的方式实现它

最佳答案

使用boolean indexing通过 Series.ne 进行过滤与 Series.shift ed Series 与 -1 为最后一个重复的连续行:

df1 = df[df['col1'].ne(df['col1'].shift(-1))]
print (df1)
col1 col2
1 1 20
2 2 11
3 3 33
5 1 10
6 2 24
8 3 28

详细信息:

print (df['col1'].ne(df['col1'].shift(-1)))
0 False
1 True
2 True
3 True
4 False
5 True
6 True
7 False
8 True
Name: col1, dtype: bool

关于python - 如何找到pandas数据框中连续值的最后一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662690/

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