python计算文件CSV的时间考勤

时间:2015-05-10 20:36:29

标签: python csv time time-and-attendance

我有一个包含指向个人的csv文件。这种形式:

3,23/02/2015,08:27,08:27,12:29,13:52,19:48
3,24/02/2015,08:17,12:36,13:59,19:28
5,23/02/2015,10:53,13:44
5,25/02/2015,09:05,12:34,12:35,13:30,19:08
5,26/02/2015,08:51,12:20,13:46,18:47,18:58

我想要清洁。这样:

ID, DATE, IN,BREAK_OUT, BREAK_IN, OUT, WORK_TIME
3,Monday 23/02/2015,08:27,12:29,13:52,19:48,08:00hours
3,Tuesday 24/02/2015,08:17,12:36,13:59,19:28,08:00hours
5,Monday 23/02/2015,10:53,NAN,13:44,NAN,2houres
5,Wednesday 25/02/2015,09:05,12:34,13:30,19:08,08hours
你能帮帮我吗? 想你

2 个答案:

答案 0 :(得分:0)

这个问题可能有助于您:How to split string into column

首先,读取整个文件并拆分列。检查是否有数据,并将其写回新文件。

如果您需要其他帮助,请告诉我们您尝试了什么,哪些对您有用,哪些无效等等。我们不会为您编写完整的程序/脚本。

答案 1 :(得分:0)

我建议您使用pandas从文件中导入数据

import pandas as pd
pd.read_csv(filepath, sep = ',')
假设文件路径导致你的csv,

应该做的伎俩。然后我建议你使用datetime函数将你的字符串转换为你可以计算的日期(我想你也可以使用numpys datetime64类型,我只是不习惯它们。)

import datetime as dt
day = dt.datetime.strptime('23/02/2015', '%d/%m/%Y')
in = dt.datetime.combine(day, dt.datetime.strptime('08:27', '%H:%M').time())

应该做的伎俩。有必要,您的in也是datetime对象,不仅是时间对象,否则您无法减去它们(这将是计算工作时间的必要下一步。

认为这应该有点让你开始,你会找到pandas文档here和日期时间文档here

如果您还有其他问题,请尝试更具体地提出您的问题。