假设我想获取数据帧的第一行,其中某一列具有负值:
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/