gpt4 book ai didi

python - 在进行 Pandas 合并时删除重复的列

转载 作者:行者123 更新时间:2023-11-28 21:07:19 36 4
gpt4 key购买 nike

我在 pandas df 中有一张 table

id   product_1   product_2   count  
1 100 200 10
2 200 600 20
3 100 500 30
4 400 100 40
5 500 700 50
6 200 500 60
7 100 400 70

我在数据框 df2 中还有另一个表

product    price
100 5
200 10
300 15
400 20
500 25
600 30
700 35

我想合并 df2df1 这样我得到 price_x 和 price_y 作为列

然后再次除以 price_y/price_x 得到最后一列作为 perc_diff

所以我尝试使用合并。

# Add prices for products 1 and 2
df3 = (df1.
merge(df2, left_on='product_1', right_on='product').
merge(df2, left_on='product_2', right_on='product'))

# Calculate the percent difference
df3['perc_diff'] = (df3.price_y - df3.price_x) / df3.price_x

但是当我合并时,我得到了多列 product_1product_2

例如。合并后我的 df3.head(1) 是:

id  product_1   product_2   count  product_1   product_2   price_x   price_y 
1 100 200 10 100 200 5 10

那么如何在合并时或合并后删除这些多列的 product_1product_2

最佳答案

df2_ = df2.set_index('product')
df3 = df.join(df2_, on='product_1') \
.join(df2_, on='product_2', lsuffix='_x', rsuffix='_y')

df3.assign(perc_diff=df3.price_y.div(df3.price_x).sub(1))

enter image description here

关于python - 在进行 Pandas 合并时删除重复的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586202/

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