我正在尝试透视/转换我的列值,并尝试获取相应的datetime。
表一:
User Status LogTime
----------------------------------------
Tom Active 2019-09-06 17:36:08.233
Tom Active 2019-09-06 18:37:08.244
Tom Active 2019-09-06 20:46:08.133
Tom InActive 2019-09-06 23:46:08.133
Tom Active 2019-09-07 12:37:08.244
Tom Active 2019-09-08 10:46:08.133
Tom InActive 2019-09-08 11:46:08.133
试图得到如下数据。
User Active InActive
------------------------------------------------------
Tom 2019-09-06 20:46:08.133 2019-09-06 23:46:08.133
Tom 2019-09-08 10:46:08.133 2019-09-08 11:46:08.133
我正在尝试将status列与last active logtime和last active logtime之后的inactive logtime互换
3条答案
按热度按时间qc6wkl3g1#
你可以试试
shift()
抓取前一行InActive
,然后将每2行分隔为一组unstack()
:或使用相同的
m
与pivot_table
:nfeuvbwi2#
此查询在具有数据集的配置单元中工作。当用户的日志中没有非活动或活动状态时,我试图考虑可能的边界条件,当然,逻辑应该在真实的数据集上进行验证和调整。
演示:
结果:
f5emj3cl3#
在“logtime”的“user”、“status”、“date”部分尝试groupby,并在“logtime”上调用“last”。下一步,“unstack”,将索引放入列,删除不需要的列和“dropna”