繁体   English   中英

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

[英]Pandas: Drop a row if it contains a condition

我有一个大的 dataframe,我需要排除一些包含对我来说很困惑的值的行。

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

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

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

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

只是想知道,我的 dataframe 是这样的:

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
(...)

谢谢您的帮助。

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

正如 Jezreal 所建议的那样,更优雅的解决方案

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

旧解决方案

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM