Повторная выборка кадра данных на основе столбца глубины - PullRequest
2 голосов
/ 06 апреля 2019

У меня есть два кадра данных, которые 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 Ответ

1 голос
/ 06 апреля 2019

Если возможно изменение данных образца для одного и того же максимального и минимального значений в обоих, используйте 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
...