python - 从系列/列中查找第一个元素的索引(例如 "True")

标签 python pandas indexing

如何在系列或列中找到元素(例如“True”)的索引?

例如,我有一个列,我想在其中标识事件发生的第一个实例。所以我写成

Variable = df["Force"] < event

然后这会创建一个 bool 数据系列,其中它为 False,直到第一个实例变为 True。那么如何找到数据点的索引呢?

有没有更好的办法?

最佳答案

使用idxmax 找到最大值的第一个实例。在这种情况下,True 是最大值。

df['Force'].lt(event).idxmax()

考虑示例 df:

df = pd.DataFrame(dict(Force=[5, 4, 3, 2, 1]), list('abcde'))
df

   Force
a      5
b      4
c      3
d      2
e      1

Force 小于 3 的第一个实例在索引 'd' 处。

df['Force'].lt(3).idxmax()
'd'

请注意,如果 Force 的值都不小于 3,则最大值将为 False,第一个实例将是第一个。

同时考虑替代方案 argmax

df.Force.lt(3).values.argmax()
3

它返回第一个最大值实例的位置。然后,您可以使用它来查找相应的 index 值:

df.index[df.Force.lt(3).values.argmax()]
'd'

此外,在未来,argmax 将是一个 Series 方法。

关于python - 从系列/列中查找第一个元素的索引(例如 "True"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634271/

相关文章:

python - 将数据框转换为子列表或字典

python - Pandas 多索引和数据帧列表中的堆栈

python - 在 google appengine 中使用 python 更新索引时出错

string - 角色的最后一个实例

python - 检查搁架中是否存在 key 的最快方法

python - 在 Pandas 中使用 DataFrame.where 方法时出现 ValueError

python - 混合参数化测试和标记

python - 我如何求和取决于 pandas 中索引值的所有值?

python - Django Widget 调整中的错误 'render_field' 标记需要一个表单字段,后跟表单 attr ="value": 中的属性和值列表

python - 如何在 Django 中使用 Ajax 提交表单