pandas объединение и группировка данных - PullRequest
0 голосов
/ 21 января 2020

У меня есть фрейм данных со следующим содержимым

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')
...