Создать гистограмму из рамки панды - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь создать гистограмму, которая будет отображать среднее значение по группам

мои данные выглядят так -

     week     8    exp                          
   Subject Group      1      2      3        Mean
0      255  WT 0  101.8   75.6   84.1   87.166667
1      157  HD 0   92.6   87.8   82.3   87.566667
2      418  WT 0   54.5   47.0   50.8   50.766667
3      300  WT 0   48.1   73.1   72.2   64.466667
4      299  HD 0   71.8   86.0   93.4   83.733333
5      258  WT 0   88.0   98.5   50.2   78.900000
6      173  WT 0   75.4   70.5   83.9   76.600000
7      273  HD 0  103.6   94.2  108.3  102.033333
8      175  WT 0   36.7   30.7   42.2   36.533333
9      172  HD 0   82.6   91.6   73.4   82.533333
10     263  WT 0  110.7  102.4  105.5  106.200000
11     304     1   90.4   90.1  103.4   94.633333
12     305     1  128.6  141.5  123.1  131.066667
13     306     1   52.0   45.6   57.2   51.600000
14     309   0.1   41.3   52.6   79.9   57.933333
15     317   0.1   86.2   95.8   77.1   86.366667

Мой код -

frame_data = pd.read_csv('final results.csv', header=[0,1])

data_avg = df.iloc[:, -3:].mean(axis=1)

frame_data[('exp', 'Mean')] = frame_data.iloc[:, -3:].mean(axis=1)

grouped_by_group = frame_data.groupby(['Group', 
'Mean']).size().unstack('Mean')

grouped_by_group.plot.bar(title='Grip')

Я получаю ошибку KeyError: 'Group'

Я проверял много раз, и это так, как написано ... Я не знаю, что не так ...

1 Ответ

0 голосов
/ 30 июня 2018

Я думаю, что нужно изменить DataFrame на melt, совокупность mean, а затем Series.plot:

frame_data = pd.read_csv('final results.csv', header=[0,1])
frame_data[('exp', 'Mean')] = frame_data.iloc[:, -3:].mean(axis=1)

#flatten MultiIndex to columns 
frame_data.columns = frame_data.columns.map('_'.join)

grouped_by_group = frame_data.groupby('8_Group')['exp_Mean'].mean()
print (grouped_by_group)
8_Group
0.1     72.150000
1       92.433333
HD 0    88.966667
WT 0    71.519048
Name: value, dtype: float64

grouped_by_group.plot.bar(title='Grip')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...