根据深度列对数据帧进行重采样
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
我有两个数据框,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