我有一个如下所示的数据集。
Region_Name Date Average
London 1990Q1 105
London 1990Q1 118
... ... ...
London 2018Q1 157
我将日期转换为四分之一,并希望创建一个新的数据框,将匹配的四分之一和区域名称分组在一起,并给出平均值。 完成这项任务的最佳方法是什么?
我一直在查看groupby函数,但一直在追溯。 例如:
new_df = df.groupby(['Resion_Name','Date']).mean()
答案 0 :(得分:1)
dict3={'Region_Name': ['London','Newyork','London','Newyork','London','London','Newyork','Newyork','Newyork','Newyork','London'],
'Date' : ['1990Q1','1990Q1','1990Q2','1990Q2','1991Q1','1991Q1','1991Q2','1992Q2','1993Q1','1993Q1','1994Q1'],
'Average': [34,56,45,67,23,89,12,45,67,34,67]}
df3=pd.DataFrame(dict3)
**现在我的df3如下**
Region_Name Date Average
0 London 1990Q1 34
1 Newyork 1990Q1 56
2 London 1990Q2 45
3 Newyork 1990Q2 67
4 London 1991Q1 23
5 London 1991Q1 89
6 Newyork 1991Q2 12
7 Newyork 1992Q2 45
8 Newyork 1993Q1 67
9 Newyork 1993Q1 34
10 London 1994Q1 67
代码如下:
new_df = df3.groupby(['Region_Name','Date'])
new1=new_df['Average'].transform('mean')
数据帧new1
的结果:
print(new1)
0 34.0
1 56.0
2 45.0
3 67.0
4 56.0
5 56.0
6 12.0
7 45.0
8 50.5
9 50.5
10 67.0