Как найти среднюю после сортировки месячную колонку в питоне - PullRequest
0 голосов
/ 27 января 2019

Передо мной стоит задача в Python.

| Growth_rate  | Month |
| ------------ |-------|
|            0 |     1 | 
|           -2 |     1 | 
|          1.2 |     1 | 
|          0.3 |     2 | 
|         -0.1 |     2 | 
|            7 |     2 | 
|            9 |     3 | 
|          4.1 |     3 |

Теперь я хочу усреднить темп роста по месяцам в новых столбцах.Как и в первый месяц, среднее значение будет равно -0,26, и оно должно выглядеть так, как показано в таблице ниже.

| Growth_rate | Month | Mean  |
| ----------- | ----- | ----- |
|           0 |     1 | -0.26 |
|          -2 |     1 | -0.26 |
|         1.2 |     1 | -0.26 |
|         0.3 |     2 |   2.2 |
|        -0.1 |     2 |   2.2 |
|           7 |     2 |   2.2 |
|           9 |     3 |   6.5 |
|         4.1 |     3 |   6.5 |

Это рассчитает среднюю скорость роста и поместит ее в средний столбец.

Любая помощь будетбольшой.

Ответы [ 2 ]

0 голосов
/ 27 января 2019
df.groupby(df.months).mean().reset_index().rename(columns={'Growth_Rate':'mean'}).merge(df,on='months')
Out[59]: 
   months      mean  Growth_Rate
0       1 -0.266667          0.0
1       1 -0.266667         -2.0
2       1 -0.266667          1.2
3       2  2.200000         -0.3
4       2  2.200000         -0.1
5       2  2.200000          7.0
6       3  6.550000          9.0
7       3  6.550000          4.1
0 голосов
/ 27 января 2019

Предполагается, что вы используете пакет pandas.Если ваша таблица находится в DataFrame df

In [91]: means = df.groupby('Month').mean().reset_index()
In [92]: means.columns = ['Month', 'Mean']

, тогда присоединяйтесь через объединение

In [93]: pd.merge(df, means, how='outer', on='Month')
Out[93]:
   Growth_rate  Month      Mean
0          0.0      1 -0.266667
1         -2.0      1 -0.266667
2          1.2      1 -0.266667
3          0.3      2  2.400000
4         -0.1      2  2.400000
5          7.0      2  2.400000
6          9.0      3  6.550000
7          4.1      3  6.550000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...