У меня есть фрейм данных со следующим содержимым
date val
2010-01-01 20:46:15.00 7665
2010-01-01 20:46:55.20 2878
2010-01-01 20:47:55.20 8211
2010-02-12 03:08:03.20 0027
2010-02-12 03:09:10.07 3319
2011-04-21 11:46:14.40 3239
2011-04-21 11:47:08.12 7665
2012-06-25 12:42:03.09 7750
2012-06-25 13:38:54.88 7740
Я хочу, чтобы данные были сгруппированы так, чтобы у меня был новый столбец, содержащий в себе значение val, которое появилось в течение 10 минут. В приведенном выше примере это будет похоже на
bin vals_in_bin
2010-01-01 00:00:00.00 - 00:10:00.00 None
.
.
2010-01-01 20:40:00.00 - 20:50:00.00 7665,2878,8211
.
.
Затем я хочу найти Топ 10 пар значений, которые появляются в этих новых данных
Например, если мы предположим, что Значения (7665, 2878, 8211) чаще всего появляются в новых данных чаще всего, что приводит к появлению 3-х ведущих пар (7665, 2878), (7665, 8211), (2878,8211). Мне нужно получить такие пары, соответствующие 10 наиболее часто появляющимся парам.
До сих пор мне удавалось создавать бины по времени. Но я не знаю, как группировать val на основе этих бинов
data = pd.read_csv(file_loc))
data= data.drop_duplicates()
data.reindex()
data['date'] = pd.to_datetime(data['date'])
start_time = data['date'].min()
end_time = data['date'].max()
bins = pd.date_range(start = start_time, end=end_time, freq='10T')