【发布时间】:2021-08-29 10:57:38
【问题描述】:
我有一个 csv 文件,其中包含如下数据框所示的 JSON 功能
标识 |日期 |会话
001 | 29/8/2019 | [{"start":451;"end":459;"duration":13};{"start":522;"end":528;"duration":11};{"start":568;"end":575;"duration":12};{"start":595;"end":604;"duration":14};{"start":1194;"end":1210;"duration":21}]
002 | 27/8/2019 | [{"start":64;"end":65;"duration":6};{"start":451;"end":456;"duration":10};
{"start":513;"end":516;"duration":8};{"start":537;"end":541;"duration":9};{"start":1208;"end":1215;"duration":12};{"start":1367;"end":1368;"duration":6}]
- 定义:
Hour01:一天中第一个小时内的会话持续时间(以分钟为单位),从 0001 到 0100 小时。 Hour02:从 0101 到 0200 小时,一天中第 2 个小时内的会话持续时间(以分钟为单位)。等等 . . Hour23:一天中第 24 小时内的会话持续时间(以分钟为单位),从 2301 到 2400 小时。
- 注 1:每天从“0”分钟开始,到“1440”分钟结束。
- 注意 2:在每个 Activity 会话的开始处增加了额外的“5 分钟”。
- 注意 3:会话被视为
VALID only WHEN {session minutes in {duration} is > 9 minutes}。 - 注意 4:对于
在场景 1 中,我们读取了“会话”中的第一行 - {"start"":451;""end"":459;””duration””:13;},这表明 Activity 在第 451 分钟开始并在第 459 分钟结束 ==> 这导致 {459 – 551} 8 分钟的 Activity 在{Hour of day},在该日期{29/8/2019} 对应用户 ID{ec296e97c0}。
一个。分钟 451 开始于“Hour 8”,而 459 结束于“Hour 8”。因此,该用户的“8 分钟”活动总数被读取为“8 小时”(如下所示)。 湾。我们在每个活动会话的第一个时段(初始小时)中增加了额外的“5 分钟”。 {8 + 5} 13 分钟分配给“Hour 8”(而不是 8 分钟),如下面的输出所示。 这是一个有效的会话,将捕获 13 分钟的持续时间。 (在应用上述注 2 和 3 后)。
- 同样,我们分配所有段 {Session} 并将它们映射到正确的时间。
对于场景 2,当会话跨越两个或多个连续小时时:
- 从上面第 4 次会话的示例中,
{""start"":595;""end"":604;""duration"":14}。 一世。活动跨越两个小时{10, 11}。 ii.分钟“595 到 600”分配给“Hour10”,“600 到 604”分配给“Hour11”。 (注 2 和 3 在每个会话中相应应用)
2。每个小时{Hr1…Hr24} 的总分钟数是根据“预期输出”得出并制表的
完全坚持将上述带有 JSON 值的 csv 格式设置为以下格式: EXPECTED –OUTPUT {按照以下格式}显示 1 行作为结果示例
ID | Date |Hr01|Hr02|Hr03|Hr04|Hr05|Hr06|Hr07|Hr08|Hr09|Hr10|Hr11|.....|Hr24
001|27/8/2019| | | | | | | | 13 | 11 | 22 | 33 |...
002|26/8/2019|...
可以帮助建议如何使用python 实现这一目标吗?我在 python 方面仍然很弱,如果有人可以提供帮助,我真的很感激。
谢谢
【问题讨论】: