大熊猫的总和时间

时间:2017-04-26 10:18:23

标签: python pandas

我有df列有日期,员工和事件。 '事件'如果有人退出,则有[1,3,5],如果有人有人,则有[0,2,4]。 '员工'它是每个员工的私人号码。那是df的负责人:

   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,它显示每个员工的工作时间总和。 员工在同一天进来并出来,他们每天都可以做几次。

1 个答案:

答案 0 :(得分:0)

您似乎需要boolean indexinggroupby sum diffyear = 2010 month = 10 df = df[(df['date'].dt.year == year) & (df['date'].dt.month== month)] 的区别:

groupby

更为通用的解决方案是添加到year monthdf =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())

var d.date = "2017-04-26 07:49:09"