根据深度列

时间:2019-04-06 10:07:24

标签: pandas resampling

我有两个数据帧,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 

我尝试了几种方法,但没有成功。非常感谢所有人

1 个答案:

答案 0 :(得分:1)

如果可以将样本数据中的最大值和最小值都更改为相同,请使用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