Группировка по годам и типу с использованием панд - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть набор данных (Данные):

(данные)

Quarter Type  Value
1989-Q1 A      3.8
1989-Q1 B      3.9
1989-Q2 A      3.7
1989-Q2 B      3.2
1989-Q3 A      4.2
1989-Q3 B      4.2
1989-Q4 A      4.1
1989-Q4 B      4.5
1990-Q1 A      4.8
1990-Q1 B      4.9
1990-Q2 A      4.7
1990-Q2 B      4.2
1990-Q3 A      4.6
1990-Q3 B      4.7
1990-Q4 A      4.8

Я бы хотел использовать панд для группировки кварталов в год для каждого типа (Желаемый)

(Желаемый)

Quarter
1989 A 3.9  # (Average of the 4 Quarters)
1990 A 3.7
1989 B 3.7  # (Average of the 4 Quarters)
1990 B 3.6

Пожалуйста, сообщите, как этого можно достичь. Тч

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Конечно, к тому времени, как я закончил, другие уже были там первыми, но в конце я добавил сортировку:

df['Year'], df['Quarter'] = df['Quarter'].str.split('-', 1).str
df = df[['Year', 'Type', 'Value']]
grp = pd.DataFrame(df.groupby(['Year', 'Type'])['Value'].mean())
grp.sort_values(by='Type')
0 голосов
/ 01 ноября 2018

Вы хотите рассчитать средние значения Value на Year и Type. Поскольку в ваших данных нет столбца с данными лет, вам сначала нужно получить его из столбца Quarter.

Один из способов сделать это - str.split().

df[["Year", "Quarter"]] = df['Quarter'].str.split('-', expand=True)

Теперь мы можем вычислить средние значения, используя DataFrame.groupby():

df.groupby(['Year', 'Type'])['Value'].mean() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...