首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从df中查找行索引,对此,df$col1-df2$col1 x=min而论。然后从df中找出在[idx-5;idx+5]范围内的col2最大值。

从df中查找行索引,对此,df$col1-df2$col1 x=min而论。然后从df中找出在[idx-5;idx+5]范围内的col2最大值。
EN

Stack Overflow用户
提问于 2022-05-04 13:25:02
回答 1查看 28关注 0票数 1

我有两个数据帧df1df2

df1有两列。我想从idx找到row的索引df1,它在col1中包含了与df2 col1值的最小距离。

接下来,我想从df1 col2中找到neighborhood [idx-10, idx+10]的最大值。然后将该值附加到df2,并将其附加到找到最小距离的相应行。

以下是两个数据框架的示例:

代码语言:javascript
复制
 df1 = pd.DataFrame({"A": [1,1.5,2.5,3,3.5,3.95,4.55,5.1, 5.54, 6.02, 6.57], 
"B": [0.25, 0.6, 1.34, 0.75, 0.16, 1.04, 0.99, 0.23, 0.95, 0.65,0.22]})
       A     B
0   1.00  0.25
1   1.50  0.60
2   2.50  1.34
3   3.00  0.75
4   3.50  0.16
5   3.95  1.04
6   4.55  0.99
7   5.10  0.23
8   5.54  0.95
9   6.02  0.65
10  6.57  0.22



df2 = pd.DataFrame({"A1": [1.06, 2.34, 3.70, 6, 7.2], "C": ["pink", "blue", "orange", "pink", "orange"]})



      A1       C
0  1.06    pink
1  2.34    blue
2  3.70  orange
3  6.00    pink
4  7.20  orange

为了方便起见,我将选择区间[idx-2;idx+2]。以下是预期的结果:

代码语言:javascript
复制
  df3 = pd.DataFrame({"A1":[1.06,2.34, 3.70, 6, 7.2], "B": [1.34, 1.34, 1.04, 0.95, 0.95], "C": ["pink", "blue", "orange",
"pink", "orange"]})
   
     A1     B       C
0  1.06  1.34    pink
1  2.34  1.34    blue
2  3.70  1.04  orange
3  6.00  0.95    pink
4  7.20  0.95  orange

我知道我可以合并这些数据帧,但问题是其中一个df1非常大,所以要计算AA1列的所有可能距离需要大量的内存。所以,也许还有比这更有效率的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-04 15:40:17

假设df1已经在A列上排序,那么让我们使用searchsortedA中获取与来自A1的值相对应的最近值的索引,然后确保剪切索引值等于df1长度的索引。现在,在df1.B上做一个居中滚动最大值,最后使用最近的索引在一个间隔内得到相应的最大值。

代码语言:javascript
复制
i = np.searchsorted(df1['A'], df2['A1'], side='right')
i[i == len(df1)] -= 1

w = 2
r = df1['B'].rolling(2 * w + 1, center=True, min_periods=1).max()
df2['B'] = r.iloc[i].tolist()

代码语言:javascript
复制
     A1       C     B
0  1.06    pink  1.34
1  2.34    blue  1.34
2  3.70  orange  1.04
3  6.00    pink  0.95
4  7.20  orange  0.95
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72113727

复制
相关文章

相似问题

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