интерполировать кадр панд, используя временной индекс из другого кадра данных - PullRequest
0 голосов
/ 03 октября 2019

Итак, у меня есть 2 фрейма данных, первый из которых имеет следующую структуру:

               'ds',             '1_sensor_id',     '1_val_1', '1_val_2'
0    2019-09-13 12:40:00             33469             30               43   
1    2019-09-13 12:45:00             33469             43               43

Второй имеет следующую структуру:

              'ds',                '2_sensor_id', '2_val_1', '2_val_2'


0    2019-09-13 12:42:00             20006             6      50
1    2019-09-13 12:47:00             20006             5      80

Итак, что я хочусделать это объединить кадр двух панд с помощью интерполяции. Таким образом, в конечном счете, объединенный кадр должен иметь значения, определенные в метках времени (ds), определенных в кадре 1, и столбцы 2_val_1 и 2_val_2 будут интерполированы, и объединенный кадр будет иметь строку для каждого значения в ds столбец в рамке 1. Как лучше всего это сделать в пандах? Я попробовал функцию merge_asof, но она выполняет интерполяцию ближайшего соседства, и я не вернул все отметки времени.

1 Ответ

0 голосов
/ 03 октября 2019

Вы можете append один кадр в другой и использовать интерполировать () , пример:

df1 = pd.DataFrame(columns=['ds', '1_sensor_id', '1_val_1', '1_val_2'],
                   data=[[datetime.datetime(2019, 9, 13, 12, 40, 00), 33469, 30, 43],
                         [datetime.datetime(2019, 9, 13, 12, 45, 00), 33469, 33, 43]])
df2 = pd.DataFrame(columns=['ds', '2_sensor_id', '2_val_1', '2_val_2'],
                   data=[[datetime.datetime(2019, 9, 13, 12, 42, 00), 20006, 6, 50],
                         [datetime.datetime(2019, 9, 13, 12, 47, 00), 20006, 5, 80]])
df = df1.append(df2, sort=False)
df.set_index('ds', inplace=True)
df.interpolate(method = 'time', limit_direction='backward', inplace=True)
print(df)
                     1_sensor_id  1_val_1  ...  2_val_1  2_val_2
ds                                         ...                  
2019-09-13 12:40:00      33469.0     30.0  ...      6.0     50.0
2019-09-13 12:45:00      33469.0     33.0  ...      5.4     68.0
2019-09-13 12:42:00          NaN      NaN  ...      6.0     50.0
2019-09-13 12:47:00          NaN      NaN  ...      5.0     80.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...