簡體   English   中英

根據另一個 dataframe 中的條件表達式從 pandas DataFrame 中刪除行

[英]Delete rows from a pandas DataFrame based on a conditional expression in another dataframe

我有兩個 pandas 數據幀 df1 和 df2,它們的行數相等。 df2 有 11 行包含 NaN 值。 我知道如何通過應用刪除 df2 中的空行:

df2.dropna(subset=['HIGH'], inplace=True)

但現在我想從 df1 中刪除這些相同的行(具有相同行號的行已從 df2 中刪除)。 我嘗試了以下方法,但這似乎不起作用。

df1.drop(df2[df2['HIGH'] == 'NaN'].index, inplace=False)

還有其他建議嗎?

您可以使用以下方法獲取其中包含 NaN 值的所有行:

is_NaN = df2.isnull()
row_has_NaN = is_NaN.any(axis=1)
rows_with_NaN = df2[row_has_NaN]

之后,您可以刪除帶有 NaN 的行。 (就像你在問題中說的)

現在您可以從“rows_with_NaN”中獲取每個索引。 對於每個索引,您都可以將其從 df1 中刪除(應該具有與您所說的相同的索引)。

我希望這是正確的! (沒有做過測試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM