如何整合来自 MS Teams 的出席名单?

Dav*_*vid 6 python summary pandas microsoft-teams pandas-groupby

最近,微软宣布了下载 MS 团队出勤率的选项,以跟踪谁加入和离开。但是,要参加班级团队,它并不是很有用,因为它没有提供正确的方法来了解参与者在会议中的时间。

例如,

df = pd.DataFrame([["Organiser Name","Joined","03/08/2020, 16:30:41"],
["Organiser Name","Left","03/08/2020, 17:03:32"],
["Organiser Name","Joined","03/08/2020, 17:04:25"],
["Student 1","Joined before","03/08/2020, 16:30:41"],
["Student 1","Joined before","03/08/2020, 17:04:27"],
["Student 2","Joined before","03/08/2020, 16:30:41"],
["Student 2","Joined","03/08/2020, 17:04:27"],
["Student 3","Joined","03/08/2020, 16:31:47"],
["Student 3","Joined","03/08/2020, 17:04:27"],
["Student 3","Left","03/08/2020, 17:30:32"],
["Student 4","Joined","03/08/2020, 16:32:01"],
["Student 4","Left","03/08/2020, 16:37:20"],
["Student 4","Joined","03/08/2020, 16:39:27"],
["Student 4","Joined","03/08/2020, 17:04:27"],
["Student 4","Left","03/08/2020, 17:17:19"],
["Student 4","Joined","03/08/2020, 17:19:13"],
["Student 5","Joined","03/08/2020, 16:35:41"],
["Student 5","Left","03/08/2020, 16:36:46"],
["Student 6","Joined","03/08/2020, 16:38:01"],
["Student 6","Left","03/08/2020, 16:40:14"],
["Student 7","Joined","03/08/2020, 17:15:08"],
["Student 7","Left","03/08/2020, 17:15:44"],
["Student 7","Joined","03/08/2020, 17:15:48"],
["Student 7","Left","03/08/2020, 17:15:54"],
["Student 8","Joined","03/08/2020, 17:18:12"],
["Student 8","Left","03/08/2020, 17:19:59"]], columns = ["Full Name","User Action","Timestamp"])
Run Code Online (Sandbox Code Playgroud)

这是原始的会议出席名单(仅替换了姓名)。假设我在03/08/2020, 17:22:002 分钟前结束会议并下载了出席情况,有什么办法可以考虑使用 python 总结这些数据?喜欢,

学生名单和他/她在课堂上的时间

然后我可以将其与所有学生进行比较并获得缺席者名单,以及根据学生在课堂上的时间长短来决定是否出勤。

我没有任何基本代码,因为我对以下内容感到困惑:

  1. 中间我错过了一些剩余的时间,但有两个连续的加入时间
  2. 当我由于某些互联网问题离开会议并重新加入时,在我离开和重新加入之间没有关于谁离开和加入的信息。

有人解决过这个问题吗?

或者有什么想法来总结这些数据?

或者有什么新的想法来决定出席的资格?

提前致谢。

注意:我期望的解决方案是使用 python,但是,也欢迎使用任何语言或 excel 的解决方案。

Cma*_*sen 0

I tried my best but I have little experience with TimeSeries, so maybe other people can complete it. Basically, you need to Timestamp your column so that Pandas understand that it is dealing with time and not 'string/object'. Then you need to pivot it. The final step is to calculate the time each student has been in the meeting. Hope this helps you get started.

import pandas as pd
df = pd.read_csv('vg.csv', delimiter=",", sep=",")
df.head()

df['Timestamp'] = pd.to_datetime(df.Timestamp)

df['Hour'] = df.Timestamp.dt.hour #converting it to hour
df['Minutes'] = df.Timestamp.dt.minute #converting it to minutes
df['Sek'] = df.Timestamp.dt.minute #converting it to sexcunds
df['Ended'] = "18:00:00"
df['Ended'] = pd.to_datetime(df.Ended)

df.rename(columns={'   Full Name': 'Person'}, inplace=True) #Sorry I wanted to change your Columns name

result = df.pivot_table(index='Person',
                         columns='User Action',
                         values=['Hour', 'Minutes', "Sek", "Ended"])
print(result)
#
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述