如何计算每小时的平均数量?

时间:2018-06-22 14:23:17

标签: python pandas

我有以下数据框df,我想计算一年中每小时每小时的平均条目数,按跑道分组

year   month   day   hour    runway
2017   12      30    10      32L
2017   12      30    11      32L
2017   12      30    11      32L
2017   12      30    11      32L
2017   12      30    11      30R
2018   12      30    10      32L
2018   12      30    10      32L
2018   12      30    11      32L
2018   12      30    11      32L

预期结果是这样的

year   runway   avg. count per hour
2017   32L      2    
2017   30R      0.5        
2018   32L      2
2018   32L      0

我尝试过此方法,但它不计算每小时的平均计数:

result = df.groupby(['year','runway']).count()

1 个答案:

答案 0 :(得分:3)

这是实现这一目标的一种方法,即

#Take the count of unique hours per year
s = df.groupby(['year'])['hour'].nunique()
# Take the count of the the runway
n = df.groupby(['year','runway']).size().reset_index()
# Divide them 
n['avg'] = n[0]/n['year'].map(s)

   year runway  0  avg
0  2017    30R  1  0.5
1  2017    32L  4  2.0
2  2018    32L  4  2.0