python - 根据条件获取 Python Pandas 中数据帧的第一行,而无需迭代整个数据帧

标签 python pandas

假设我想获取数据帧的第一行,其中某一列具有负值:

import pandas as pd
df = pd.DataFrame(columns=['c'],data=[[2.4,2.3,-1.0]])
index = df.loc[df['c'] < 0].index[0]

现在这是可行的,但如果我有一个包含数百万行的数据框,我不想迭代所有这些行来获取索引。有没有一种方法可以获取索引而不必循环每一行? (会很慢)

最佳答案

您可以使用 Series.lt 检查给定列中的哪些行为负数并使用idxmax获取第一个 True 的索引:

df = pd.DataFrame(columns=['c'],data=[2.4,2.3,-1.0])
print(df)
    c
0  2.4
1  2.3
2 -1.0

df.c.lt(0).idxmax()
# 2

关于python - 根据条件获取 Python Pandas 中数据帧的第一行,而无需迭代整个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55283405/

相关文章:

python - 如何在 Django 管理中输入一定数量的条目后限制管理输入?

python - 使用 annotate 在 matplotlib 中创建箭头

python - 在peewee中设置严格的sql模式

python - 过滤数据帧字符串列 - 类型 'int' 的参数不可迭代/无法使用包含 NA/NaN 值的向量进行索引

Python Pandas For 循环

python - 在python中对列表中的文件进行排序

python - 使特定频率(范围)更响亮

python - Pandas 。如何在不更改索引的情况下对 DataFrame 进行排序?

python - pandas 列中字符串值的累积集合

python - 根据 DataFrame A 中行中的值从 DataFrame B 中选择行