为了账号安全,请及时绑定邮箱和手机立即绑定

如何从熊猫数据框中删除包含特定列中特定字符串的行?

如何从熊猫数据框中删除包含特定列中特定字符串的行?

慕码人2483693 2019-11-11 14:16:43
我在python中有一个非常大的数据框,我想在特定列中删除所有包含特定字符串的行。例如,我想在数据框的列C中删除所有具有字符串“ XYZ”作为子字符串的行。可以使用.drop()方法以有效的方式实现这一点吗?
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

pandas具有向量化的字符串操作,因此您可以过滤掉包含不需要的字符串的行:


In [91]: df = pd.DataFrame(dict(A=[5,3,5,6], C=["foo","bar","fooXYZbar", "bat"]))


In [92]: df

Out[92]:

   A          C

0  5        foo

1  3        bar

2  5  fooXYZbar

3  6        bat


In [93]: df[~df.C.str.contains("XYZ")]

Out[93]:

   A    C

0  5  foo

1  3  bar

3  6  bat


查看完整回答
反对 回复 2019-11-11
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

仅当您要比较精确的字符串时,这才起作用。如果您要检查列字符串是否包含列表中的任何字符串,它将不起作用。


与列表进行比较的正确方法是:


searchfor = ['john', 'doe']

df = df[~df.col.str.contains('|'.join(searchfor))]


查看完整回答
反对 回复 2019-11-11
  • 2 回答
  • 0 关注
  • 771 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信