python-2.7 - 在第一次出现值之前删除所有行

标签 python-2.7 pandas

我有一个像这样的 df:

Year  ID Count
1997  1  0
1998  2  0
1999  3  1
2000  4  0
2001  5  1

我想在第一次出现 1 之前删除所有行在 Count这会给我:
Year  ID Count
1999  3  1
2000  4  0
2001  5  1

我可以在第一次出现后删除所有行,如下所示:
df=df.loc[: df[(df['Count'] == 1)].index[0], :]

但我似乎无法遵循切片逻辑使其相反。

最佳答案

我会做:

df[(df.Count == 1).idxmax():]

enter image description here
df.Count == 1返回一个 bool 数组。 idxmax()将标识最大值的索引。我知道最大值将是 True当有多个时 True s 它将返回找到的第一个位置。这正是你想要的。顺便说一句,该值是 2 .最后,我对来自 2 的所有内容进行数据帧切片继续与 df[2:] .我在上面的答案中将所有内容放在一行中。

关于python-2.7 - 在第一次出现值之前删除所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707165/

相关文章:

python - 在列表中查找非唯一元素不起作用

python - 删除与小于指定大小的组对应的行

python - 读取 Pandas 中的 CSV 文件,中间有空行

python - Pandas 合并循环内生成的数据帧

python - 安装 PySWIP 以在 Python 中使用 Prolog 时出错

python - 当 "cloning"对象时避免使用 clone = obj *1 是否有特殊原因?

python - Pandas 根据条件合并两行

python - 使用 pandas read_csv 和证书

python - 如何将数字数据映射到 Pandas 数据框中的类别/容器

Python 在工作目录中打开 .txt 文件/更改时出现错误消息