我正在尝试解析我在下面简化的活动日志。
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])
答案 0 :(得分:1)
它是pivot_table
的完美用例:
df.pivot_table(columns=['Activity'],values=['Timestamp'],index=['Job_Id'], aggfunc=lambda x : x)