我有这个数据框,我想计算每年的平均数量
index cath_date
1 2017Q4 111
2 2017Q3 107
3 2018Q2 105
4 2017Q2 105
5 2017Q1 101
7 2018Q3 98
8 2016Q3 97
9 2018Q1 94
10 2018Q4 91
11 2016Q1 91
12 2015Q4 85
13 2016Q4 83
14 2016Q2 81
15 2015Q3 80
16 2015Q2 67
18 2015Q1 28
最后拥有这样的数据框
index cath_date
1 2015 28
2 2016 87
3 2017 87
4 2018 97
答案 0 :(得分:3)
您的数学似乎有点时髦(例如2015
的最小值为28,那么平均值怎么可能是28?),但是您可以.groupby
的前4个字符计算出意思是:
In [6]: df.groupby(df['index'].str.slice(0, 4)).mean()
Out[6]:
cath_date
index
2015 65
2016 88
2017 106
2018 97
答案 1 :(得分:0)
IIUC,
df.groupby(df['index'].apply(lambda i:i[:4]))['cath_date'].mean().reset_index()