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

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],但它仍然不起作用。
对如何进行有什么建议吗?
发布于 2020-02-28 18:56:38
# 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')

# 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

https://stackoverflow.com/questions/60451937
复制相似问题