基于秩条件Python创建Groupby列

时间:2015-12-08 16:03:15

标签: python pandas

我正在使用python中的事件数据库,我需要编写一个函数来量化特定事件是否跟随(AT ANY POINT)另一个特定事件。

df = pd.DataFrame({'User':[1,1,1,2,2,2],
               'Product':['A','A','A','B','B','B'],
               'Updated_At':['2015-01-01',
                             '2015-02-01',
                             '2015-03-01',
                             '2015-04-01',
                             '2015-05-01',
                             '2015-06-01'],
                   'Event':[1,1,2,1,3,2]})

对于用户拥有的每个产品,事件2在任何一个点上都会在下一个事件1发生之前跟随事件1.如果是,请将事件保留在事件= 1的位置。

答案(' Event_Updated'包含我想保留的行):

df = pd.DataFrame({'User':[1,1,1,2,2,2],
               'Product':['A','A','A','B','B','B'],
               'Updated_At':['2015-01-01',
                             '2015-02-01',
                             '2015-03-01',
                             '2015-04-01',
                             '2015-05-01',
                             '2015-06-01'],
               'Event':[1,1,2,1,3,2],
               'Updated_Event':['no', 'yes', 'no', 'yes', 'no', 'no']})

逻辑步骤似乎是继续使用groupby([' User',' Product'])并创建一个虚拟列以添加到groupby,然后检查是否在每个User,Product,EventType1的实例也存在一个Event = 2的行。类似于' Event_Dummy'列如下:

df = pd.DataFrame({'User':[1,1,1,2,2,2],
               'Product':['A','A','A','B','B','B'],
               'Updated_At':['2015-01-01',
                             '2015-02-01',
                             '2015-03-01',
                             '2015-04-01',
                             '2015-05-01',
                             '2015-06-01'],
               'Event':[1,1,2,1,3,2],
               'Event_Dummy': [1,2,2,3,3,3],
               'Updated_Event':['no', 'yes', 'no', 'yes', 'no', 'no']})

然后声明将会出现以下几点:

检查df.grouby('User','Product','Event_Dummy')是否包含2

请让我知道如何帮助澄清这个问题。

0 个答案:

没有答案