我有一个如下所示的Pandas Dataframe:
streak
0 1.0
1 2.0
2 0.0
3 1.0
4 2.0
5 0.0
6 0.0
我想删除
0.0
列中第一个streak
之后的每一行。结果应如下所示:
streak
0 1.0
1 2.0
最佳答案
通过0
获取第一个idxmax
的索引,通过iloc
获取切片,仅需要默认的唯一索引:
#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.argmax
获取位置:print (df)
streak
a 1.0
b 2.0
c 0.0
d 1.0
e 2.0
f 0.0
g 0.0
df = df.iloc[:df['streak'].eq(0).values.argmax()]
print (df)
streak
a 1.0
b 2.0
关于python - Python Pandas删除单元格中特定值之后的每一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49352824/