Python将删除单元格中特定值后的每一行

Python将删除单元格中特定值后的每一行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框,如下所示: streak 0 1.0 1 2.0 2 0.0 3 1.0 4 2.0 5 0.0 6 0.0 我想删除streak列中第一个0.0之后的每一行 结果应该如下所示: streak 0 1.0 1 2.0 获取第一个0by和切片依据的索引,只需要默认的唯一索引: #df = df.reset_index(drop=True) df =

我有一个熊猫数据框,如下所示:

    streak 
0      1.0 
1      2.0 
2      0.0 
3      1.0 
4      2.0 
5      0.0 
6      0.0 
我想删除
streak
列中第一个
0.0
之后的每一行

结果应该如下所示:

    streak 
0      1.0 
1      2.0 

获取第一个
0
by和切片依据的索引,只需要默认的唯一索引:

#df = df.reset_index(drop=True)
df = df.iloc[:df['streak'].eq(0).idxmax()]
print (df)
   streak
0     1.0
1     2.0
详细信息

print (df['streak'].eq(0).idxmax())
2
编辑:如需更一般的解决方案,请使用
numpy
-通过以下方式获取位置:


这是一个通过
numpy.where
实现的通用解决方案。它将用于匹配任何指定值的第一个实例

df = df.iloc[:np.where(df['streak']==0)[0][0]]

#    streak
# 0     1.0
# 1     2.0
df = df.iloc[:np.where(df['streak']==0)[0][0]]

#    streak
# 0     1.0
# 1     2.0