根据索引和条件删除行

时间:2017-09-27 18:00:54

标签: python pandas rows delete-row

我想根据行的范围删除某些行:我觉得它看起来像下面的

df.drop(df.index[[0,1,2,3]])

这样只会删除我的前两行但是我想删除那些行,当且仅当行范围为空时。所以

  Name

  Macy
  June

Jackson

所以我只想通过数据框并删除该范围内的行,当且仅当它们没有数据时,我的新数据框将如下所示:

  Name
  Macy
  June
Jackson

2 个答案:

答案 0 :(得分:1)

您不需要drop语句中的df.index。但是,如果您只想保留填充Name列的行,则可以使用:

> df_filter = df [df.Name != '']

如果您真的想根据索引找到行,可以使用

> df_filter = df.drop([0,2])

答案 1 :(得分:1)

您可以使用df.ix获取例外项目,然后使用None方法删除dropna()

df.ix[indices].dropna()

演示:

In [48]: df
Out[48]: 
      name
0     None
1     Macy
2     June
3     None
4  Jackson

In [49]: df.ix[[0,1,2,3]].dropna()
Out[49]: 
   name
1  Macy
2  June

注意:正如评论中所述,由于不推荐ix方法,您可以使用df.loc()代替。