首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两只熊猫之间循环数据,根据在dataframe2 1中给出的值,从dataframe1中选择要提取的行范围

如何在两只熊猫之间循环数据,根据在dataframe2 1中给出的值,从dataframe1中选择要提取的行范围
EN

Stack Overflow用户
提问于 2020-02-28 12:41:59
回答 1查看 108关注 0票数 1

我有两个大的数据帧和相同产品的价格。它们的数据帧有不同的大小。第一数据帧df1,每个产品有一个价格,第二数据帧df2,每个产品有多个价格。我需要从df1获得产品和价格,并在df2中找到相应的价格范围(-5.0 < df1 < 5.0)。然后将其提取到第三个数据帧df3中。

  1. ,这就是我所拥有的:

  1. ,这是我在没有运气的情况下尝试的代码:

df3 = pd.DataFrame()表示索引,行在df1.iterrow():pr1 =浮(行‘价格’) np1 =(行‘积’) npd = MD +2 npu =md-2,如果np2L == np1: df3 = df2(df2.price1 <= npd) & (df2.price1 <= npu)…

我还将最后一行替换为:df3 = df2.ix[npu:npd],但它仍然不起作用。

对如何进行有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 18:56:38

代码语言:javascript
复制
# set index of df1 copy to product (since it is unique)
df1_c = df1.copy().set_index('product')

# join df2 and df1_c on df2.product1 = df1_c.product
df3 = df2.copy().join(other=df1_c, on='product1')

代码语言:javascript
复制
# select rows of df3 where absolute difference between price1 and price <= 5
df3 = df3[ abs(df3.price1-df3.price) <= 5.0 ].reset_index().drop(['index', 'price'], axis=1)
df3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60451937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档