python-3.x - 编辑:Pyspark:基于另一个数据框删除行,条件多列
问题描述
我有两个数据框 df1 和 df2。我想根据 df2 列值过滤或删除 df1 上的行
df2,我必须检查客户名称、产品、年份、数量和金额,然后如果 df1 的所有值都相同,我必须放弃。(即)如果 customername = Gopi、product = ball、year = 2020、qty = 0 和 amount <= 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'))
谢谢。
推荐阅读
- android - Android (iOS) 上的 React-Native 本机模块对象渲染
- c# - 在 CIMInstance 中转换参数
- android - Sceneform for ARCore 创建盒子方法
- python - 使用 PyTorch 进行 Tensorboard 图形可视化
- wordpress - Woocommerce 504 关于具有六个属性的产品
- c# - c#中的单例类
- mysql - MySQL中的错误时间戳
- lstm - Pytorch LSTM - 问答分类训练
- vba - 错误 440:对象“PivotCaches”的方法“创建”失败
- javascript - 在客户端授权贝宝付款并在服务器上捕获付款