2017-04-26 121 views
-1

我有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

看來你需要boolean indexinggroupby從哪裏得到的diff差異與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()) 
+0

是的,我需要GROUPBY,但不由df ['event']。事件0意味着進來,事件1意味着出來。但經過小小的改變後,它的工作正常。 –