gpt4 book ai didi

python - Pandas - 找到第一次出现

转载 作者:太空狗 更新时间:2023-10-29 17:24:44 26 4
gpt4 key购买 nike

假设我有一个如下所示的结构化数据框:

df = pd.DataFrame({"A":['a','a','a','b','b'],
"B":[1]*5})

A 列之前已排序。我希望找到 df[df.A!='a'] 的第一行索引。最终目标是使用此索引将数据框分成基于 A 的组。

现在我意识到有一个 groupby 功能。但是,数据框非常大,这是一个简化的玩具示例。由于 A 已经排序,如果我可以找到 df.A!='a' 的第一个索引 会更快.因此,重要的是,无论您使用什么方法,一旦找到第一个元素,扫描就会停止

最佳答案

idxmaxargmax返回最大值的位置,如果最大值出现多次,则返回第一个位置。

df.A.ne('a') 上使用 idxmax

df.A.ne('a').idxmax()

3

numpy 等价物

(df.A.values != 'a').argmax()

3

但是,如果 A 已经排序,那么我们可以使用 searchsorted

df.A.searchsorted('a', side='right')

array([3])

或者 numpy 等价物

df.A.values.searchsorted('a', side='right')

3

关于python - Pandas - 找到第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255215/

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