Pandas 如何在数据框中删除与特定组/数据相关的行(数据)?

Pandas 如何在数据框中删除与特定组/数据相关的行(数据)?,pandas,dataframe,Pandas,Dataframe,在以下数据框中, 在下面的示例中,我只需要ID 1的数据,并删除其余数据。如何做到这一点 ID name s1 s2 s3 s4 1 Joe rd fd NaN aa 1 Joe NaN hg kk NaN 2 Ann jg hg zt uz 2 Mya rd fd NaN aa 1

在以下数据框中, 在下面的示例中,我只需要ID 1的数据,并删除其余数据。如何做到这一点

ID   name  s1       s2       s3       s4

1   Joe   rd       fd       NaN      aa
1   Joe   NaN      hg       kk       NaN
2   Ann   jg       hg       zt       uz
2   Mya   rd       fd       NaN      aa
1   Uri   gg       r        er       rt
4   Ron   hr       t        yt       rt
所有数据帧都有一个drop方法,它可以做您想要做的事情

对于您的特定情况,如果您确实希望删除数据,而不是将其过滤到不同的数据帧,则可以使用以下代码段:

df.drop(df[df['ID'] != 1].index, inplace = True)
应该有效。

使用布尔表示法


df[df['ID']==1]谢谢,它成功了。我可以问一下为什么在这里使用.index吗?从文档中可以看出,DataFrame.drop方法要么接受index来删除整行,要么接受列标签来删除列。因为您想要删除整行,所以我们需要使用索引。这是低效的。为什么不:df[df.ID==1]
 df.loc[df['ID'].eq(1)]