簡體   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