如何用Pandas删除DataFrame中streak列首个0.0后的所有行?
解决方法
要实现删除streak列中第一个0.0所在行之后的所有行,你可以按照下面的步骤操作:
首先定位第一个0.0的位置,再截取该位置之前的所有行即可,直接上代码:
import pandas as pd # 初始化你的原始DataFrame df = pd.DataFrame({'streak': [1.0, 2.0, 0.0, 1.0, 2.0, 0.0, 0.0]}) # 找到第一个值为0.0的行的索引 first_zero_index = df[df['streak'] == 0.0].index[0] # 截取从开头到该索引之前的所有行(不包含这个0.0的行) result_df = df.iloc[:first_zero_index] print(result_df)
运行后输出的结果就是你想要的:
streak
0 1.0
1 2.0
补充说明
- 核心逻辑是用
df[df['streak'] == 0.0].index[0]精准定位第一个0.0的索引位置,这里对应的是第2行(索引从0开始)。 - 用
iloc[:first_zero_index]完成切片,只保留索引0到1的行。
如果你的DataFrame有可能不存在0.0的情况,可以加个判断避免报错:
if not df[df['streak'] == 0.0].empty: first_zero_index = df[df['streak'] == 0.0].index[0] result_df = df.iloc[:first_zero_index] else: result_df = df.copy() # 没有0.0就返回原DataFrame
内容的提问来源于stack exchange,提问作者beta
相关产品推荐
相关产品推荐

