繁体   English   中英

如何根据条件删除 pandas DataFrame 中的多行?

[英]How to delete multiple rows in a pandas DataFrame based on condition?

我知道如何使用.drop()方法通过传递轴和标签从 dataframe 中删除行和列。

这是Dataframe

在此处输入图像描述

现在,如果我想从( Arizona一直到Colorado )删除所有STNAME等于的行,我应该怎么做?

我知道我可以通过将行标签 2 到 7 传递给.drop()方法来做到这一点,但是如果我有很多数据并且我不知道开始和结束索引,那将是不可能的。

可能有点hacky,但这里有一个选项:

index1 = df.index[df['STNAME'] == 'Arizona'].tolist()[0]
index2 = df.index[df['STNAME'] == 'Colorado'].tolist()[-1:][0]

df = df.drop(np.arange(index1, index2+1))

这基本上取了亚利桑那州的第一个索引号和科罗拉多州的最后一个索引号,并从这些索引之间的数据框中删除每一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM