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