![](/img/trans.png)
[英]How to drop rows of a pyspark dataframe if they're in another dataframe based on the values from two columns?
[英]EDIT: Pyspark: drop rows based on another dataframe with conditions on many columns
我有兩個數據框 df1 和 df2。 我想根據 df2 列值過濾或刪除 df1 上的行
df2,我必須檢查客戶名稱、產品、年份、數量和金額,然后如果 df1 的所有值都相同,我必須刪除。 (即)如果客戶名稱 = Gopi,產品 = 球,年份 = 2020,數量 = 0 且數量 <= 0,則下降。
請告訴我如何實現,謝謝。
df1:
customername product year qty amount
Gopi ball 2020 0 -100
Hana ball 2020 2 200
Gopi toy 2019 10 1000
Mesh toy 2020 2 200
Tiby ball 2017 1 100
Mona pen 2020 1 70
Hana ball 2019 2 200
Mona ball 2020 1 70
Mona toy 2020 1 70
Tiby toy 2020 1 100
df2:
customername product year qty amount
Gopi ball 2020 0 -100
Mona pen 2020 1 70
預期輸出:
customername product year qty amount
Hana ball 2020 2 200
Gopi toy 2019 10 1000
Mesh toy 2020 2 200
Tiby ball 2017 1 100
Hana ball 2019 2 200
Mona ball 2020 1 70
Mona toy 2020 1 70
Tiby toy 2020 1 100
我設法過濾如下。
final_df = df1.join(df2, ((df1.customername == df2.customername) & (df1.product == df2.product) & (df1.year == df2.year) & (df1.qty == df2.qty) & (df1.amount <= 0), how='left_anti'))
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.