gpt4 book ai didi

python - 根据条件的最后一次出现划分数据帧

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

假设我有按 id 排序的数据:

 id | count 
1 1
2 2
3 0
4 4
5 3
6 2
7 0
8 10
9 1
10 2

我想始终获取任何最后 之后的最后更改。根据以上数据,我想得到:

 id | count 
8 10
9 1
10 2

有人知道怎么做吗?

最佳答案

Pandas

df.loc[df['count'].ne(0).iloc[::-1].cumprod().astype(bool)]

id count
7 8 10
8 9 1
9 10 2

numpy

df[(df['count'].values[::-1] != 0).cumprod()[::-1].astype(bool)]

id count
7 8 10
8 9 1
9 10 2

有其他条件

df[(df['count'].values[::-1] < 3).cumprod()[::-1].astype(bool)]
# df.loc[df['count'].lt(3).iloc[::-1].cumprod().astype(bool)]

id count
8 9 1
9 10 2

调试
您应该能够复制并粘贴它并重现我的结果。如果你不能,那么还有其他问题。尝试重置内核。

import pandas as pd

df = pd.DataFrame({
'count': [1, 2, 0, 4, 3, 2, 0, 10, 1, 2],
'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})

df[(df['count'].values[::-1] < 3).cumprod()[::-1].astype(bool)]

应该产生

   count  id
8 1 9
9 2 10

关于python - 根据条件的最后一次出现划分数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43985074/

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