Новый кадр данных из группировки двух столбцов - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть набор данных, который выглядит следующим образом.

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

Я преобразовал дату в кварталы и хочу создать новый кадр данных, в котором совпадающие кварталы и названия регионов сгруппированы вместе со средним средним.Каков наилучший способ выполнить такую ​​задачу.

Я смотрел на функцию groupby, но продолжаю получать трассировку.например:

new_df = df.groupby(['Resion_Name','Date']).mean()

1 Ответ

0 голосов
/ 21 ноября 2018
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
...