Pandas:如果包含条件,则删除一行

时间:2021-03-02 13:08:06

标签: python pandas

我有一个很大的数据框,我需要排除一些包含对我来说令人困惑的值的行。

我想到了一个嵌套在像这样的 for 循环中的 if 语句

for x in range (6655):
test = pseudoF2['Match'][x]

if test[:2].lower() == 'ab':
    pseudoF2.drop(test, inplace=True)

问题是我不断收到“未在轴中找到”的关键错误

只是有一个想法,我的数据框是这样的:

Word    Match   Value1  Value2
1   Ab-art  Un-ans  1.95    0.15
2   Ab-art  An-ans  1.95    0.15
3   Ab-art  Um-ans  1.90    0.10
4   Ab-art  Tu-ort  2.15    0.35
5   Ab-drift    An-klift    2.90    0.25
(...)

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以尝试regular expression检查ab列中是否有Match,然后您可以删除那些indices

Jezreal 建议更优雅的解决方案

df[~df['Match'].str.contains(r'(?i)^ab')]

旧解决方案

df.drop(df[df['Match'].str.contains(r'(?i)^ab')].index, inplace=True)
相关问题