我的问题是如何根据另一个数据框的条件将新列中的数据添加到数据框中,这有点难以表述,所以我在这里给出了一个示例
df1
columns a b c
0 10 1
10 15 3
15 20 5
df2
columns d e
3.3 10
5.5 20
14.5 11
17.2 5
这里我想做的是在df 2中添加另一列f,它的值来自df 1,这样如果d[i]在a[j]和b[j]之间,则将值c[j]复制到df 2中的新列f[i]。例如:d[1] = 5.5,因此0〈5.5〈10,因此,f[1] = c[0] = 1的值
最终结果应该如下所示
df2
columns d e f
3.3 10 1
5.5 20 1
14.5 11 3
17.2 5 5
任何帮助是非常感谢!
此致,
史蒂夫
5条答案
按热度按时间wtlkbnrh1#
假设
df1
a和b中的间隔不重叠,可以将pd.cut
与pd.IntervalIndex
一起使用:DF2:
cgyqldqp2#
您可以用途:
bwntbbo33#
kgsdhlau4#
这个选项怎么样?
ecfdbz9o5#
如果没有重叠的间隔,则
pd.IntervalIndex
accepted solution非常合适。另一个选项是使用conditional_join from pyjanitor,它也可以处理重叠的间隔: