[英]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.