gpt4 book ai didi

python - bool 逻辑比较来自两个 Pandas Dataframes 的数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:07 28 4
gpt4 key购买 nike

我有以下数据框df1:

          Date  Invoice          Name  Price  Coupon Location
0 2017-12-24 700349 John Doe 59.95 NONE VAGG1
1 2017-12-24 700347 Joe Smith 59.95 GBMR GG
2 2017-12-24 700345 Dave Johnson 35.00 CHANGE VAGG1
3 2017-12-24 700342 Sue Davis 35.00 GADSLR VAGG1
4 2017-12-23 700329 Betty Clark 84.95 GADSLR GG2

和第二个数据帧df2:

           Date  Invoice         Name  Price    Coupon    Location
0 2017-12-24 800349 John Doe 59.95 NONE VAGG1
1 2017-12-24 800347 Joe Smith 59.95 GBMR GG
2 2017-12-24 800345 John Doe 17.95 CHANGE VAGG1
3 2017-12-24 800342 John Doe 9.95 GADSLR VAGG1
4 2017-12-23 800329 Sue Simpson 34.95 GADSLR GG2

我想创建第三个 Dataframe,df3,使用以下逻辑。

  • 对于 df1 中的每个名称,检查是否存在匹配项。
  • 如果有匹配,将匹配行从df2添加到df3,提供该行的价格与关联的价格不匹配该名称如果 df1

因此输出数据帧df3应该如下所示:

+------------+---------+----------+-------+--------+----------+
| Date | Invoice | Name | Price | Coupon | Location |
+------------+---------+----------+-------+--------+----------+
| 2017-12-24 | 800345 | John Doe | 17.95 | CHANGE | VAGG1 |
| 2017-12-24 | 800342 | John Doe | 9.95 | GADSLR | VAGG1 |
+------------+---------+----------+-------+--------+----------+

最佳答案

使用merge + query -

df1.merge(df2[['Name', 'Price']], on='Name')\
.query('Price_x != Price_y')\
.drop('Price_x', 1)\
.rename(columns={'Price_y' : 'Price'})

Date Invoice Name Coupon Location Price
1 2017-12-24 700349 John Doe NONE VAGG1 17.95
2 2017-12-24 700349 John Doe NONE VAGG1 9.95

df1df2 是您各自的数据帧。

关于python - bool 逻辑比较来自两个 Pandas Dataframes 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101897/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com