Count Frequency Of Occurrence In Column
I'm trying to count value occurrences in a data frame which contains datetime column ('%Y-%m-%d %H:%M:%S').   Data: Date                        Employee        Operation        Ord
Solution 1:
I think it is best to create groups based on the day, the user and the Operation.For this you can use groupby + dt.date.
Then you can count the occurrences of each group using groupby.count. You can use unstack to generate a data frame like the one I show you below:
#df=df.reset_index() #only if date is the index#df['Date']=pd.to_datetime(df['Date']) # If Date not is datetime
new_df=df.groupby([df['Date'].dt.date,'Employee','Operation'])['Operation'].count().unstack(fill_value=0)
print(new_df)
OperationApprovedCreatedDeletedEditedRejectedDateEmployee2001-01-01 User1101112001-01-02 User101000Also you can use dt.year to group by year instead of by day:
new_df=df.groupby([df['Date'].dt.year,'Employee','Operation'])['Operation'].count().unstack(fill_value=0)
print(new_df)
Operation      Approved  Created  Deleted  Edited  Rejected
Date Employee                                              
2001 User1            1        1        1       1         1
or by year and month:
new_df=df.groupby([df['Date'].dt.year,df['Date'].dt.month,'Employee','Operation'])['Operation'].count().unstack(fill_value=0)
print(new_df)
Operation           Approved  Created  Deleted  Edited  Rejected
Date Date Employee                                              
2001 1    User1            1        1        1       1         1
Details
1. DataFrame for the example:
dfDateEmployeeOperationOrder02001-01-01 08:32:17    User1Approved#0004512001-01-01 08:36:23    User1Edited#0004522001-01-01 08:41:04    User1Rejected#0004632001-01-01 08:42:56    User1Deleted#0004642001-01-02 09:01:11    User1Created#00047- If Date is not a column you should use df=df.reset_index(). To convert Date to datetime usedf['Date']=pd.to_datetime(df['date'])
Post a Comment for "Count Frequency Of Occurrence In Column"