我正试图根据用户上次登录的时间戳来标记用户的存在/不存在。如果用户在2020年9月3日午夜至上午9:05之前登录,则他们被标记为在场,否则他们将缺席。
学生时间戳示例
Time Present/Absent
2020-09-03T08:55:14-05:00 present
2020-09-03T04:44:46-05:00 present
2020-09-03T09:01:05-05:00 present
2020-09-03T07:12:22-05:00 present
2020-09-03T08:48:53-05:00 present
2020-09-02T16:53:20-05:00 absent
2020-09-02T20:02:28-05:00 absent
2020-09-03T09:01:15-05:00 present
2020-09-03T08:55:03-05:00 present
2020-09-03T09:03:03-05:00 present
2020-09-02T09:13:32-05:00 absent
2020-09-02T23:24:54-05:00 absent
2020-09-02T23:24:58-05:00 absent
2020-09-03T09:03:03-05:00 present
2020-09-02T23:25:01-05:00 absent
这是我的代码
df3['Time'] = df3['Time'].astype(str)
for time in df3['Time']:
if time > '%Y-%m-%d 00:00:00-05:00':
df3['Present/Absent'] = 'absent'
elif time < '%Y-%m-%d 09:05:00-05:00':
df3['Present/Absent'] = 'present'
但是我有这个
Time Present/Absent
2020-09-03T08:55:14-05:00 present
2020-09-03T04:44:46-05:00 present
2020-09-03T09:01:05-05:00 present
2020-09-03T07:12:22-05:00 present
2020-09-03T08:48:53-05:00 present
2020-09-02T16:53:20-05:00 present
2020-09-02T20:02:28-05:00 present
2020-09-03T09:01:15-05:00 present
2020-09-03T08:55:03-05:00 present
2020-09-03T09:03:03-05:00 present
2020-09-02T09:13:32-05:00 present
2020-09-02T23:24:54-05:00 present
2020-09-02T23:24:58-05:00 present
2020-09-03T09:03:03-05:00 present
2020-09-02T23:25:01-05:00 present
df3['Present/Absent'] = 'present'
正在为整列分配"present"。同样适用于"缺席"情况。试试这个:
df3['Time'] = df3['Time'].astype(str)
df3['Present/Absent'] = ''
for idx, row in df3.iterrows():
time = row['Time']
if time > '%Y-%m-%d 00:00:00-05:00':
df3.loc[idx, 'Present/Absent'] = 'absent'
elif time < '%Y-%m-%d 09:05:00-05:00':
df3.loc[idx, 'Present/Absent'] = 'present'
我假设条件按预期工作,df3类似于Student Timestamp示例。