给定以下数据帧:
+-------+-----+-------+-----+--------+---------------------------+
| DID | CID | Event | OID | Source | TimeStamp |
+-------+-----+-------+-----+--------+---------------------------+
| 25078 | 14 | QBT | 0 | EMS | 2019-10-15 10:54:35 +0000 |
| 25078 | 14 | NDOBT | 0 | EMS | 2019-10-15 10:54:48 +0000 |
| 25078 | 14 | SBT | 0 | EMS | 2019-10-15 10:54:52 +0000 |
| 25078 | 14 | SBT-1 | 0 | ECS | 2019-10-15 11:00:01 +0000 |
| 25078 | 14 | SBT-1 | 0 | ECS | 2019-10-15 11:00:26 +0000 |
| 25078 | 14 | SBT-1 | 0 | ECS | 2019-10-15 11:00:50 +0000 |
| 25078 | 14 | SBT | 0 | EMS | 2019-10-15T14:27:45 |
| 25078 | 14 | SBT | 0 | EMS | 2019-10-15T14:27:45 |
| 25078 | 14 | LSFA | 0 | SPDLS | 2019-10-15T14:28:16 |
| 25078 | 14 | LSFA | 0 | SPDLS | 2019-10-15T14:28:16 |
| 25078 | 14 | FEAR | 0 | CBS | 2019-10-15T14:28:18 |
| 25078 | 14 | FEAR | 0 | CBS | 2019-10-15T14:28:18 |
| 25078 | 14 | SBT | 0 | EMS | 2019-10-15T14:28:44 |
| 25078 | 14 | SBT | 0 | EMS | 2019-10-15T14:28:44 |
| 25078 | 14 | LSFA | 0 | SPDLS | 2019-10-15T14:30:55 |
| 25078 | 14 | LSFA | 0 | SPDLS | 2019-10-15T14:30:55 |
| 25078 | 14 | SBT | 0 | EMS-1 | 2019-10-15T15:28:43 |
| 25078 | 14 | SBT | 0 | EMS-1 | 2019-10-15T15:29:02 |
| 25078 | 14 | FEAR | 0 | CBS | 2019-10-15T15:30:51 |
| 25078 | 14 | FEAR | 0 | CBS | 2019-10-15T15:30:51 |
| 25078 | 14 | DBT | 0 | RS | 2019-10-15T15:44:23 |
| 25078 | 14 | QBT | 0 | EMS-1 | 2019-10-15T16:02:16 |
+-------+-----+-------+-----+--------+---------------------------+
我想获得一些事件和源的第一次和最后一次出现,以便最终输出如下所示:
+-------+-----+---------------------+--------------------+---------------------+--------------------+---------------------------+---------------------------+---------------------------+---------------------+
| DID | CID | Event-QBT-Last-DT | Event-QBT-First-DT | Event-SBT-Last-DT | Event-SBT-First-DT | Screen-ECS-First-DT | Screen-ECS-Last-DT | FirstTimeUsage | LastTime Usage |
+-------+-----+---------------------+--------------------+---------------------+--------------------+---------------------------+---------------------------+---------------------------+---------------------+
| 25078 | 14 | 2019-10-15T16:02:16 | 10/15/19 10:54 AM | 2019-10-15T15:29:02 | 10/15/19 10:54 AM | 2019-10-15 11:00:01 +0000 | 2019-10-15 11:00:50 +0000 | 2019-10-15 10:54:35 +0000 | 2019-10-15T16:02:16 |
+-------+-----+---------------------+--------------------+---------------------+--------------------+---------------------------+---------------------------+---------------------------+---------------------+
如何使用熊猫实现这一点。你知道吗
您还可以创建一个函数并使用
apply
在数据帧上运行,如下所示:可能会慢一点,但完成任务。你知道吗
其思想是用^{} 和^{} 筛选行,以获取某些事件的第一次和最后一次出现,然后用^{} 和} 重新整形,最后在列中展平
first
和last
筛选行,并用^{MultiIndex
:对于第一次和最后一次出现,请使用不带筛选器的第一个解决方案、groupby中的no
Event
和nounstack
:最后由^{} 连接在一起:
编辑:为了处理下一列,修改生成
df1
:最后一次使用
concat
:相关问题 更多 >
编程相关推荐