Попытка сгруппировать и подвести итоги в питоне - PullRequest
1 голос
/ 13 июня 2019

По сути, я хочу, чтобы ящики были в колонке, смотрите код и вывод. Python

    graph_data = housing_data.groupby(['Date','Bins']).Price.mean()

    graph_data
Date     Bins    
2016-01  (5, 10]              NaN
         (10, 15]    1.009000e+06
2016-03  (0, 5]      1.244532e+06
         (5, 10]     1.221559e+06
         (10, 15]    1.098541e+06
2016-04  (0, 5]      1.085015e+06
         (5, 10]     1.086503e+06
         (10, 15]    9.220241e+05
2016-05  (0, 5]      1.019418e+06
         (5, 10]     1.139064e+06
         (10, 15]    9.416809e+05

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 13 июня 2019

Я думаю, что вы просите преобразовать ваши данные в так называемые широкоформатные данные.То, что у вас есть в настоящее время, это данные в форме.Чтобы переключаться между ними в pandas, используйте melt и pivot (или stack и unstack).( Проверьте этот пост или мой более общий пост .)

У меня нет ваших данных, но попробуйте

(housing_data.groupby(['Date', 'Bins'])
             .agg({'Price': 'mean'})
             .reset_index()
             .pivot(index='Date', columns='Bins', 
                    values='Price'))

(Строка reset_index является печальной необходимостью заставить панд снова распознавать Date как столбец после команды agg.)

Если вы хотите переименовать ячейки, вы можете использовать rename до вызова groupby, но было бы проще, если бы вы просто создали свои собственные корзины с помощью pd.cut.Вот пример использования iris:

import seaborn as sns
import pandas as pd

iris = sns.load_dataset('iris')
iris['bins'] = pd.cut(iris['sepal_length'], 
                      bins=3, 
                      labels=['lo', 'med', 'hi'])
(iris.groupby(['species', 'bins'])
     .agg({'sepal_length': 'mean'})
     .reset_index()
     .pivot(index='species', columns='bins', 
            values='sepal_length'))
bins        lo          med         hi
species         
setosa      4.959574    5.733333    NaN
versicolor  5.281818    6.055556    6.900000
virginica   4.900000    6.265625    7.294118

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...