问题:-我想建立一个逻辑,获取考勤数据、In Time、Employee Id等数据,并返回一个数据框,其中包含Employee Id、In Time、出勤日期以及基本上员工输入的槽位。(假设时间是2019年10月14日的9:30:00,因此如果员工在9:30到达,则为该日期和该列插入一个值1。)
以下示例
我花了很多时间来建立这个问题的逻辑,但都失败了。你知道吗
我有一个这样的数据集。你知道吗
我想要这样一个输出,这样无论什么时间(employee enter),它都只向该时间列插入数据:
这是我的代码,但它只是重复最后一个循环。你知道吗
temp =[]
for date in nf['DaiGong']:
for en in nf['EnNo']:
for i in nf['DateTime']:
col=['EnNo','Date','InTime','9:30-10:30','10:30-11:00','11:00-11:30','11:30-12:30','12:30-13:00','13:00-13:30']
ndf=pd.DataFrame(columns=col)
if i < '10:30:00' and i > '09:30:00':
temp.append(1)
ndf['9:30-10:30'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
elif i < '11:00:00' and i > '10:30:00':
temp.append(1)
ndf['10:30-11:00'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
elif i < '11:30:00' and i > '11:00:00':
temp.append(1)
ndf['11:00-11:30'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
elif i < '12:30:00' and i > '11:30:00':
temp.append(1)
ndf['11:30-12:30'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
elif i < '13:00:00' and i > '12:30:00':
temp.append(1)
ndf['12:30-13:00'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
elif i < '13:30:00' and i > '13:00:00':
temp.append(1)
ndf['13:00-13:30'] = temp
ndf['InTime'] = i
ndf['Date'] = date
ndf['EnNo'] = en
这是我的代码输出。你知道吗
IIUC公司
如果你有任何问题,请告诉我
我的测试数据:
创建助手数据:
使用“apply”和“searchsorted”获取时间段:
最后,连接两个数据帧:
相关问题 更多 >
编程相关推荐