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

我在python中有一个非常大的数据框,我想在特定列中删除所有包含特定字符串的行。


例如,我想在数据框的列C中删除所有具有字符串“ XYZ”作为子字符串的行。


可以使用.drop()方法以有效的方式实现这一点吗?


慕码人2483693
浏览 772回答 2
2回答

大话西游666

pandas具有向量化的字符串操作,因此您可以过滤掉包含不需要的字符串的行:In [91]: df = pd.DataFrame(dict(A=[5,3,5,6], C=["foo","bar","fooXYZbar", "bat"]))In [92]: dfOut[92]:   A          C0  5        foo1  3        bar2  5  fooXYZbar3  6        batIn [93]: df[~df.C.str.contains("XYZ")]Out[93]:   A    C0  5  foo1  3  bar3  6  bat

肥皂起泡泡

仅当您要比较精确的字符串时,这才起作用。如果您要检查列字符串是否包含列表中的任何字符串,它将不起作用。与列表进行比较的正确方法是:searchfor = ['john', 'doe']df = df[~df.col.str.contains('|'.join(searchfor))]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python