根据深度列对数据帧进行重采样

Resampling a dataframe based on depth column

我有两个数据框,key 是深度。一个有 > 2k 值,另一个只有 100,但最小深度和最大深度相同。我想以与较大数据帧相同的大小对小数据帧(只有一列)进行上采样,并在两个深度之间重复一列的相同值。

我试过使用连接和重采样,但是当我想找到相同的深度时我被卡住了,因为两个数据帧深度没有完全相同的值

我有这个:

df_small:
    depth  Litholog
0  38.076       2.0
1  39.546       2.0
2  41.034       4.0
3  55.133       3.0
4  69.928       2.0

还有这个:

df_big:
     depth  
0  21.3360         
1  35.2044         
2  37.6428        
3  41.7576         
4  41.9100         
5  48.7680         
6  53.1876         
7  56.0832         
8  58.3692         
9  62.1792 

我想要这个:

df_result:
     depth  Litholog
0  21.3360         2
1  35.2044         2
2  37.6428         2
3  41.7576         4
4  41.9100         4
5  48.7680         4
6  53.1876         4
7  56.0832         3
8  58.3692         3
9  62.1792         2 

我尝试了几种方法但都没有成功。非常感谢大家

如果可以为两者中相同的最大值和最小值更改样本数据,请使用 merge_asof:

#change sample data for same min,max by df_big
print (df_small)
     depth  Litholog
0  21.3360       2.0
1  39.5460       2.0
2  41.0340       4.0
3  55.1330       3.0
4  62.1792       2.0

df = pd.merge_asof(df_big, df_small, on='depth')
print (df)
     depth  Litholog
0  21.3360       2.0
1  35.2044       2.0
2  37.6428       2.0
3  41.7576       4.0
4  41.9100       4.0
5  48.7680       4.0
6  53.1876       4.0
7  56.0832       3.0
8  58.3692       3.0
9  62.1792       2.0