gpt4 book ai didi

python - 如何返回值 If One List Against Another Dataframe (Pandas)?

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:11 25 4
gpt4 key购买 nike

df1=pd.DataFrame({'Product_ID':["55165","80125,30215","55557","92361","32619,28965,20147","88722","82793","70809, 20201","11367"],
'Product': ["ABC",'FDA','FSD','JGH','TYE','BVC','LKJ','HJD','POI'],
'Country':['CN','US','GB','AG','MX','CA','DE','CA','SG']})

df2=pd.DataFrame({'Deal_ID':[70809,88722,82793,20201,55165,30215,11367]})

上面提供了 df 和列表 (deal_id)。 enter image description here

我想返回国家信息和添加到 df2 的 product_id。我尝试使用 join 函数,但 df1 的 Product_ID 不是数字。有什么解决办法吗?

在此先感谢您的帮助。

最佳答案

您可以通过几个步骤完成此操作:-

1。展平您的聚合数据框

适本地链接和重复系列,记住将 str 转换为 int:

from itertools import chain
import numpy as np

split = df1['Product_ID'].str.split(',')
lens = split.map(len)

df1 = pd.DataFrame({'Country': np.repeat(df1['Country'], lens),
'Product': np.repeat(df1['Product'], lens),
'Deal_ID': list(map(int, chain.from_iterable(split)))})

2。与包含选定 Deal_ID 的数据框合并

df2 = df2.merge(df1)

print(df2)

Deal_ID Country Product
0 70809 CA HJD
1 88722 CA BVC
2 82793 DE LKJ
3 20201 CA HJD
4 55165 CN ABC
5 30215 US FDA
6 11367 SG POI

关于python - 如何返回值 If One List Against Another Dataframe (Pandas)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229180/

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