按数据框对来自其他数据帧的值进行分组

时间:2016-05-17 08:58:19

标签: python pandas dataframe

我有一个df1,我想用下面的列分组

retailer                        object
store_id                         int64
visit_date              datetime64[ns]
categories_euclidean           float64
probes_euclidean               float64

我想按照df2

进行分组
          pk start_date   end_date
name                              
Cycle 01   1 2016-02-24 2016-03-13
Cycle 02   2 2016-03-14 2016-03-27
Cycle 03   3 2016-03-28 2016-04-10
Cycle 04   4 2016-04-11 2016-04-24
Cycle 05   5 2016-04-25 2016-05-08
Cycle 06   6 2016-05-09 2016-05-22

过滤条件为:df2.start_date <= df1.visit_date <= df2.end_date, 并且组名称为df2.names

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

尝试:

def filt(x):
    cond1 = df2.start_date <= x
    cond2 = df2.end_date >= x
    return df2[cond1 & cond2].index[0]

df1['name'] = df1.visit_date.apply(filt)

df1.groupby('name')

我无法解决这个问题。但它可能会奏效。