我有以下2个 Dataframe (df_a、df_B):
df_a
N0_YLDF
0 11.79
1 7.86
2 5.78
3 5.35
4 6.32
5 11.79
6 6.89
7 10.74
df_b
N0_YLDF N0_DWOC
0 6.29 4
1 2.32 4
2 9.10 4
3 4.89 4
4 10.22 4
5 3.80 3
6 5.55 3
7 6.36 3
我想在df_a中添加一列N0_DWOC,这样该列中的值就来自df_a['N0_YLDF']最接近df_B['N0_YLDF']的行。
现在,我正在做一个简单的合并,但这并不符合我的要求
3条答案
按热度按时间ffvjumwh1#
您可以找到
df_b['N0_YLDF']
中(排序)值中间的截止值。然后调用pd.cut
对df_a['N0_YLDF']
中的值进行分类,截止值是bin边缘:产量
要连接
N0_DWOC
上的两个DataFrame,可以用途:从而产生
wdebmtf22#
另一种方法是减去笛卡尔积中的所有对,并获得每个对的最小绝对值的索引:
那就做吧
bhmjp9jg3#
解决此问题的另一种方法是执行笛卡尔连接,然后执行公共列的值之间的绝对差
然后按列N0_YLDF分组以获得差异的最小值,并在合并的df上再次使用此值以再次合并,但这次使用合并作为过滤器。解释不充分,但您可能会看到代码正在做什么。
output df