pandas dataframe представлен в виде таблицы в matplotlibm, но отсутствует первый столбец - PullRequest
1 голос
/ 01 апреля 2019

Я бы хотел построить график данных панд в виде таблицы в matplotlib.

Фрейм данных (df):

  name   wait_value
  cscas   2
  cscas   6
  dgref   3
  dgref   7

Я использовал:

new_df = df.groupby(['name'])['wait_value'].mean().to_frame()
fig, axarr = plt.subplots(1, 2)
axarr[0].axis('off')
axarr[0].axis('tight')
axarr[0].table(cellText= new_df.values, colLabels=('ave_wait_value'), loc='center')
fig.tight_layout()

plt.show()

Но в таблице есть только один столбец "ave_wait_value". Мне нужны две колонки:

   ave_wait_value
     4
     5

Как добавить столбец «имя» в таблицу?

Я тоже пробовал:

new_df.rename(columns = {0:'name', 1:'ave_wait_value'}, inplace =True)

Но это не сработало.

Кроме того, мне нужно вычислить std.dev для каждого «имени» и поместить его в виде столбца в той же таблице, как разработать запрос? спасибо!

1 Ответ

1 голос
/ 01 апреля 2019

Имя информация там;это просто хранится в индексе.Чтобы преобразовать индекс в столбец, используйте reset_index:

In [45]: df.groupby(['name'])['wait_value'].mean().to_frame()
Out[45]:
       wait_value
name
cscas           4
dgref           5

In [46]: df.groupby('name')['wait_value'].mean().reset_index()
Out[46]:
    name  wait_value
0  cscas           4
1  dgref           5

Чтобы получить среднее и стандартное отклонение, используйте agg:

In [49]: df.groupby('name')['wait_value'].agg(['mean', 'std']).reset_index()
Out[49]:
    name  mean       std
0  cscas     4  2.828427
1  dgref     5  2.828427
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...