【发布时间】:2020-12-06 10:08:09
【问题描述】:
亲爱的stackoverflow朋友们, 我需要 Pandas 资深用户的帮助来完成一项我自己无法解决的非常简单的任务。
这里有一个记录了每个人的入口的 df,但是,有 多个 人的入口(他们进入 - 午休时退房 - 再次进入)。
df 按人物、日期和入场时间升序排列。
我需要提取第一个记录的入口,从而排除其他入口(例如:午休后)。 要获得所需的输出(1st_stamp),我需要检查当前行是否是当天的第一行(同一个人的),然后“1st_stamp”列上会出现“y” ”。
这很棘手,因为有些人只有 1 个入口(例如:Person N.3),有些人有 2 个(Person N.2),有些人将午餐分成两次,所以他们有 3 个记录在案的入口(Person N. . 7).
你将如何继续解决这个谜题?
Ps:能够清理这些数据对于员工计划流程有很大的用处。 谢谢亲爱的:)
+-------------+------------+------------------+----------+-----------+
| name | Date | start | tstart | 1st_stamp |
+-------------+------------+------------------+----------+-----------+
| Person N. 1 | 13/08/2020 | 13/08/2020 07:00 | 07:00:00 | y |
| Person N. 1 | 13/08/2020 | 13/08/2020 13:10 | 13:10:00 | n |
| Person N. 2 | 13/08/2020 | 13/08/2020 10:00 | 10:00:00 | y |
| Person N. 2 | 13/08/2020 | 13/08/2020 13:46 | 13:46:00 | n |
| Person N. 3 | 13/08/2020 | 13/08/2020 09:00 | 09:00:00 | y |
| Person N. 4 | 13/08/2020 | 13/08/2020 08:00 | 08:00:00 | y |
| Person N. 4 | 13/08/2020 | 13/08/2020 13:04 | 13:04:00 | n |
| Person N. 4 | 13/08/2020 | NaT | NaT | n |
| Person N. 5 | 13/08/2020 | 13/08/2020 10:00 | 10:00:00 | y |
| Person N. 6 | 13/08/2020 | 13/08/2020 07:00 | 07:00:00 | y |
| Person N. 6 | 13/08/2020 | 13/08/2020 13:29 | 13:29:00 | n |
| Person N. 7 | 13/08/2020 | 13/08/2020 08:00 | 08:00:00 | y |
| Person N. 7 | 13/08/2020 | 13/08/2020 14:01 | 14:01:00 | n |
| Person N. 7 | 13/08/2020 | 13/08/2020 16:00 | 16:00:00 | n |
+-------------+------------+------------------+----------+-----------+
【问题讨论】:
-
到目前为止你尝试了什么?
标签: python pandas dataframe date row