熊猫休息时间

2024-05-16 21:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有日期、雇员和事件列的df事件'如果有人退出,则值为[1,3,5],如果有人进入,则值为[0,2,4]这是每个员工的私人号码。这是国防部的头儿:

   employee  event  registration                date
0         4      1             1 2010-10-18 18:11:00
1        17      1             1 2010-10-18 18:15:00
2         6      0             1 2010-10-19 06:28:00
3         8      0             0 2010-10-19 07:04:00
4        15      0             1 2010-10-19 07:34:00

我对df进行排序,得到一个月的值[年和月是我的变量]。你知道吗

df = df.where(df['date'].dt.year == year).dropna()
df = df.where(df['date'].dt.month== month).dropna()

我想创建df,显示每个员工的工作时间总和。 员工在同一天进进出出,每天可以做几次。你知道吗


Tags: eventdfdatedt事件员工employee私人
1条回答
网友
1楼 · 发布于 2024-05-16 21:10:28

似乎您需要^{}groupby,其中通过^{}sum获得差异:

year = 2010
month = 10

df = df[(df['date'].dt.year == year) & (df['date'].dt.month== month)]

更一般的解决方案是添加到groupbyyearmonth

df =df['date'].groupby([df['employee'],
                        df['event'], 
                        df['date'].rename('year').dt.year, 
                        df['date'].rename('month').dt.month]).apply(lambda x: x.diff().sum())

相关问题 更多 >