[英]Pandas - drop rows based on two conditions on different columns
雖然在 Pandas 中回答了幾個相關問題,但我無法解決這個問題。 我有一個大的 dataframe(~ 49000 行)並且想要同時滿足兩個條件(~ 120)刪除行:
我的代碼忽略了條件並且沒有刪除任何行。
to_remove = ['string1', 'string1']
df.drop(df[df['Column names'].isin(to_remove) & (df['Column value'].isna())].index, inplace=True)
我究竟做錯了什么? 感謝您的任何提示!
您可以為要保留行的條件創建掩碼,而不是調用drop
並傳遞index
,然后只取那些行。 此外,似乎存在邏輯錯誤,您正在檢查由AND
組合的相同列值的兩個不同條件。
df[~(df['Column1'].isin(to_remove) & (df['Column2'].isna()))]
此外,如果您需要檢查同一列,那么您可能希望通過 or ie |
組合條件。 如果需要,您可以最后reset_index
。
另外,作為旁注,您的列表to_remove
有兩個相同的字符串值,我假設這是問題中的錯字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.