Pandas Groupby:总结活动日志

时间:2015-07-29 03:43:42

标签: python-2.7 pandas

我正在尝试解析我在下面简化的活动日志。

df = pd.DataFrame({'Job_Id':[1,1,1,2,2,2],
                   'Activity': ['issued', 'assigned', 'complete', 'issued',    'assigned', 'complete'],
                   'Timestamp': ['2015-07-23 19:02:36', '2015-07-23 19:57:47', '2015-07-23 20:35:22','2015-07-23 18:10:11','2015-07-23 19:00:47', '2015-07-23 19:01:36']})

看起来像这样......

    Activity  Job_Id            Timestamp
0    issued       1  2015-07-23 19:02:36
1  assigned       1  2015-07-23 19:57:47
2  complete       1  2015-07-23 20:35:22
3    issued       2  2015-07-23 18:10:11
4  assigned       2  2015-07-23 19:00:47
5  complete       2  2015-07-23 19:01:36

我想将每项工作总结为如下所示的单行......

Job_Id   Issued                Assigned              Complete
1        2015-07-23 19:02:36   2015-07-23 19:57:47   2015-07-23 20:35:22
2        2015-07-23 18:10:11   2015-07-23 19:00:47   2015-07-23 19:01:36

我过去曾经使用过groupby,但似乎无法让它工作。我非常感谢有关如何将此活动日志转换为我突出显示的格式的一些帮助或建议。这个groupby语句显示了“已发布”的时间戳,但没有给出我需要的内容。

grouped = df.groupby(['Job_Id']).agg(lambda x: np.array(x[x['Activity'] == 'issued']['Timestamp'])[0])

1 个答案:

答案 0 :(得分:1)

它是pivot_table的完美用例:

df.pivot_table(columns=['Activity'],values=['Timestamp'],index=['Job_Id'], aggfunc=lambda x : x)