【问题标题】:Drop rows with specific string value pandas删除具有特定字符串值 pandas 的行
【发布时间】:2020-06-15 04:16:55
【问题描述】:

我有一些带有桥数据的 df,其中某些列中包含字符串“(R)”。如果值是“Blabla (R)”或“hello (R)”,我想删除这些行。 (所以带有 str.contains 的东西)

如图所示,我想删除第 9 行。(以及更多)

为什么会出现这个错误以及如何解决这个问题?

【问题讨论】:

  • df.drop 是一个方法(函数),你不能用[ ] 来索引它。也许df.drop(df.str.contains(...))

标签: string pandas contains


【解决方案1】:

如果您想删除 df 数据帧中的 road 字段等于 (S) 的任何行,则可以使用以下代码。这将删除同一数据框中的这些行(df)

df.drop(index=df[df['road'] == '(R)'].index, inplace=True)

【讨论】:

  • 不起作用,这只会删除恰好是 (R) 的行,但如果它们甚至包含“blabla (R)”,我想删除所有行。
  • 好吧,我误会了。我以为你正是想要那个。试试这个。 df.drop(index=df[df['road'].str.contains('(R)')].index, inplace=True)
  • 成功了!我只需要像 contains.('(R)) 一样输入它,因为字符串中有括号
【解决方案2】:

正如问题中提到的,str.contains 是一个有用的通配符搜索工具。

df.drop(df[df['name'].str.contains('R')].index.tolist())

.index 返回一个不可迭代的 Int64Index,因此 .tolist() 将其转换为列表并最终为 df.drop([]) 做好准备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多