Python 3.x 数据帧分块和分组

Python 3.x 数据帧分块和分组,python-3.x,pandas,pandas-groupby,binning,Python 3.x,Pandas,Pandas Groupby,Binning,我有一个包含以下内容的数据框 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 201

我有一个包含以下内容的数据框

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
我希望数据被装箱,这样我就有了一个新的列,这样它就包含了10分钟内出现的val。在上面的例子中,它将是

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对VAL

例如,如果我们假设VAL(766528788211)在新数据中同时出现的次数最多,这将导致出现3对最前面的同时出现对(76652878)、(76658211)、(28788211)。我需要得到这样的配对对应的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')

df.astype(str).groupby(df['date'].dt.floor('10min'))['val'].apply(','.join.).resample('10min').first()
。?@ChrisA。“你有没有建议高效地做第二部分?嗯,看起来有点像是值得研究的……”ChrisA。你介意关心那段代码到底在做什么吗?这里面有随机性吗?每次跑步我都会得到不同的结果。