大熊猫的总时间
问题描述:
我有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这说明我的工作和时间为每个员工。 员工在同一天进来出来,每天都可以做几次。
答
看来你需要boolean indexing
与groupby
从哪里得到的diff
差异与sum
:
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())
是的,我需要GROUPBY,但不由df ['event']。事件0意味着进来,事件1意味着出来。但经过小小的改变后,它的工作正常。 –