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