我有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,它显示每个员工的工作时间总和。 员工在同一天进来并出来,他们每天都可以做几次。
答案 0 :(得分:0)
您似乎需要boolean indexing
与groupby
sum
diff
与year = 2010
month = 10
df = df[(df['date'].dt.year == year) & (df['date'].dt.month== month)]
的区别:
groupby
更为通用的解决方案是添加到year
month
和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())
:
var d.date = "2017-04-26 07:49:09"