将两列分组在一起的新数据帧



我有一个数据集,如下所示。

Region_Name  Date     Average
London       1990Q1   105
London       1990Q1   118
...          ...      ...
London       2018Q1   157

我将日期转换为季度,并希望创建一个新的数据帧,将匹配的季度和地区名称分组在一起,并使用平均值。完成这样一项任务的最佳方法是什么。

我一直在研究groupby函数,但一直在进行回溯。例如:

new_df = df.groupby(['Resion_Name','Date']).mean()
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

最新更新