Panda DataFrame:如何按列对数据集进行分区

时间:2016-03-30 03:51:12

标签: pandas dataframe

这是我的数据

session_id, event_name
1         , 'click'
2         , 'view'
1         , 'click'
1         , 'view'
2         , 'click'

我要找的是:

将每个session_id中的所有事件分析为数组。

这是最有效的方法吗?

  1. 获取所有session_id的列表
  2. 重新列出清单
  3. 遍历session_id列表并按sessoin_id搜索 df[df['session_id'] == session_id]
  4. 有更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以groupby youranalysisfunc使用apply

print df
   session_id event_name
0           1    'click'
1           2     'view'
2           1    'click'
3           1     'view'
4           2    'click'

def youranalysisfunc(x):
    #print x
    #add your code
    x = 'aa' + x
    #add your code
    return x

print df.groupby('session_id')['event_name'].apply(youranalysisfunc)
0    aa'click'
1     aa'view'
2    aa'click'
3     aa'view'
4    aa'click'
dtype: object