【发布时间】:2021-03-23 11:48:59
【问题描述】:
我正在使用 pandas 和 datetime 库创建一个 Python 程序,该程序将计算我每周临时工作的工资,因此我可以交叉引用我的银行对帐单,而不是查看工资单。 我正在分析的数据来自与我的工作日程同步的 Google Calendar API。它以这种格式将特定日历中的事件打印到 csv 文件中:
| Start | End | Title | Hours | |
|---|---|---|---|---|
| 0 | 02.12.2020 07:00 | 02.12.2020 16:00 | Shift | 9.0 |
| 1 | 04.12.2020 18:00 | 04.12.2020 21:00 | Shift | 3.0 |
| 2 | 05.12.2020 07:00 | 05.12.2020 12:00 | Shift | 5.0 |
| 3 | 06.12.2020 09:00 | 06.12.2020 18:00 | Shift | 9.0 |
| 4 | 07.12.2020 19:00 | 07.12.2020 23:00 | Shift | 4.0 |
| 5 | 08.12.2020 19:00 | 08.12.2020 23:00 | Shift | 4.0 |
| 6 | 09.12.2020 10:00 | 09.12.2020 15:00 | Shift | 5.0 |
由于我是这份工作的临时工,因此我必须考虑一些事情,例如罚款率(基本利率,周一至周五下午 6 点之后,周六和周日都有不同的税率)。我想知道我是否可以使用 datetime 分析这个 csv 并计算下午 6 点之前有多少小时,以及 6 点之后有多少小时。因此,以此为例,输出将如下所示:
| Start | End | Title | Hours | |
|---|---|---|---|---|
| 1 | 04.12.2020 15:00 | 04.12.2020 21:00 | Shift | 6.0 |
| Start | End | Title | Total Hours | Hours before 3pm | Hours after 3pm | |
|---|---|---|---|---|---|---|
| 1 | 04.12.2020 15:00 | 04.12.2020 21:00 | Shift | 6.0 | 3.0 | 3.0 |
我可以使用它来获取星期几,但我只是不确定如何分析某些时间段的罚款率:
df['day_of_week'] = df['Start'].dt.day_name()感谢您在 Python 甚至可以应用于其他编码语言/技术方面的任何帮助:)
编辑: 这就是我的数据框目前的样子
| Start | End | Title | Hours | day_of_week | Pay | week_of_year | |
|---|---|---|---|---|---|---|---|
| 0 | 2020-12-02 07:00:00 | 2020-12-02 16:00:00 | Shift | 9.0 | Wednesday | 337.30 | 49 |
编辑 回应 David Erickson 的评论。
| value | variable | bool | |
|---|---|---|---|
| 0 | 2020-12-02 07:00:00 | Start | False |
| 1 | 2020-12-02 08:00:00 | Start | False |
| 2 | 2020-12-02 09:00:00 | Start | False |
| 3 | 2020-12-02 10:00:00 | Start | False |
| 4 | 2020-12-02 11:00:00 | Start | False |
| 5 | 2020-12-02 12:00:00 | Start | False |
| 6 | 2020-12-02 13:00:00 | Start | False |
| 7 | 2020-12-02 14:00:00 | Start | False |
| 8 | 2020-12-02 15:00:00 | Start | False |
| 9 | 2020-12-02 16:00:00 | End | False |
| 10 | 2020-12-04 18:00:00 | Start | False |
| 11 | 2020-12-04 19:00:00 | Start | True |
| 12 | 2020-12-04 20:00:00 | Start | True |
| 13 | 2020-12-04 21:00:00 | End | True |
| 14 | 2020-12-05 07:00:00 | Start | False |
| 15 | 2020-12-05 08:00:00 | Start | False |
| 16 | 2020-12-05 09:00:00 | Start | False |
| 17 | 2020-12-05 10:00:00 | Start | False |
| 18 | 2020-12-05 11:00:00 | Start | False |
| 19 | 2020-12-05 12:00:00 | End | False |
| 20 | 2020-12-06 09:00:00 | Start | False |
| 21 | 2020-12-06 10:00:00 | Start | False |
| 22 | 2020-12-06 11:00:00 | Start | False |
| 23 | 2020-12-06 12:00:00 | Start | False |
| 24 | 2020-12-06 13:00:00 | Start | False |
| 25 | 2020-12-06 14:00:00 | Start | False |
| 26 | 2020-12-06 15:00:00 | Start | False |
| 27 | 2020-12-06 6:00:00 | Start | False |
| 28 | 2020-12-06 17:00:00 | Start | False |
| 29 | 2020-12-06 18:00:00 | End | False |
| 30 | 2020-12-07 19:00:00 | Start | False |
| 31 | 2020-12-07 20:00:00 | Start | True |
| 32 | 2020-12-07 21:00:00 | Start | True |
| 33 | 2020-12-07 22:00:00 | Start | True |
| 34 | 2020-12-07 23:00:00 | End | True |
| 35 | 2020-12-08 19:00:00 | Start | False |
| 36 | 2020-12-08 20:00:00 | Start | True |
| 37 | 2020-12-08 21:00:00 | Start | True |
| 38 | 2020-12-08 22:00:00 | Start | True |
| 39 | 2020-12-08 23:00:00 | End | True |
| 40 | 2020-12-09 10:00:00 | Start | False |
| 41 | 2020-12-09 11:00:00 | Start | False |
| 42 | 2020-12-09 12:00:00 | Start | False |
| 43 | 2020-12-09 13:00:00 | Start | False |
| 44 | 2020-12-09 14:00:00 | Start | False |
| 45 | 2020-12-09 15:00:00 | End | False |
| 46 | 2020-12-11 19:00:00 | Start | False |
| 47 | 2020-12-11 20:00:00 | Start | True |
| 48 | 2020-12-11 21:00:00 | Start | True |
| 49 | 2020-12-11 22:00:00 | Start | True |
【问题讨论】:
标签: python pandas datetime time-series google-calendar-api