Min Max и Mean в качестве новых столбцов Python Pandas - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть следующий фрейм данных:

distros = ['distro_1', 'distro_1', 'distro_1', 'distro_2', 'distro_2', 'distro_2']
tco = [110, 110, 111, 109, 109, 108]
tang = [77, 77, 76, 81, 80, 80]

velocities = {'distro': distros, 'tco': tco, 'tang': tang}

df_velocities = pd.DataFrame.from_dict(velocities)

Мне нужны столбцы с минимальным, максимальным и средним значениями каждого столбца для каждого значения дистрибутива.

Я считаю, что это возможносделать это с помощью функции agg.Я не получаю.Я слежу за документацией Панд, и результат по очереди.

Что у меня есть

enter image description here

Любые советы?

Что мне нужно, это: enter image description here

Ответы [ 2 ]

3 голосов
/ 22 сентября 2019

Использование groupby.agg:

df_velocities = df_velocities.groupby('distro').agg(['min', 'max', 'mean'])

print(df_velocities)
          tco                  tang               
          min  max        mean  min max       mean
distro                                            
distro_1  110  111  110.333333   76  77  76.666667
distro_2  108  109  108.666667   80  81  80.333333

df_velocities.columns = ['_'.join(i) for i in df_velocities.columns]
#df_velocities.columns = df_velocities.columns.map('_'.join)
df_velocities = df_velocities.reset_index()

print(df_velocities)
     distro  tco_min  tco_max    tco_mean  tang_min  tang_max  tang_mean
0  distro_1      110      111  110.333333        76        77  76.666667
1  distro_2      108      109  108.666667        80        81  80.333333
1 голос
/ 22 сентября 2019

Я думаю, что вы ищете

df_aggregated = df_velocities.groupby('distro').agg({'tco': ['mean', 'min', 'max'], 'tang': ['mean', 'min', 'max']})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...