Pandas在嵌套groupby中计算频率

时间:2017-10-01 10:02:51

标签: nested pandas-groupby operations

我有以下列的大量数据

|CategoryX|CategoryY|Time
|X a      |Y a      |2017-10-01 17:30:00
|X a      |Y b      |2017-10-09 12:30:00
|X b      |Y a      |2017-10-03 18:30:00
|X b      |Y a      |2017-10-05 16:30:00
|X b      |Y a      |2017-10-06 18:30:00
|X c      |Y a      |2017-09-01 17:25:00
|X c      |Y b      |2017-10-10 13:30:00
|X c      |Y c      |2017-10-01 11:30:00
|X c      |Y c      |2017-10-11 11:30:00

通过

df=pd.DataFrame({'X':df['CategoryX'], 'Y':df['CategoryY'],'Time':df['Time']})
df=df.groupby(['X','Y'],as_index=False).size().reset_index(name="Count")
df = df.sort_values(['X', 'Count'], ascending=[1,0]).reset_index(drop=True)

数据分类到

|CategoryX|CategoryY|Count
|X a      |Y a      |1
|X a      |Y b      |1
|X b      |Y a      |3
|X c      |Y a      |1
|X c      |Y b      |1
|X c      |Y c      |2

但是我需要通过

计算时间列中的频率
  

(最晚时间 - 最早时间)/总计数

如果只有一个计数然后显示时间,那么我缺少什么呢?

|CategoryX|CategoryY|Count|Frequency
|X a      |Y a      |1    |2017-10-01 17:30:00
|X a      |Y b      |1    |2017-10-09 12:30:00
|X b      |Y a      |3    |1 Day
|X c      |Y a      |1    |2017-09-01 17:25:00
|X c      |Y b      |1    |2017-10-10 13:30:00
|X c      |Y c      |2    |5 Days

0 个答案:

没有答案