Построить таблицу из выбранных строк в DataFrame - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть кадр данных, который выглядит следующим образом:

import pandas as pd

df = pd.DataFrame({'Institution':['Uni1', 'Uni2', 'Uni3', 'Uni1', 'Uni2', 'Uni3'],
                   'Year': [2018, 2018, 2018, 2019, 2019, 2019],
                   'Value': [1000000, 2000000, 250000, 2300000, 3000000, 90000],
                   'Rank': [10, 9, 1, 8, 7, 3]})

Я хочу построить данные, сгруппированные в виде таблицы:

       Uni1    Uni2   Uni3
2018 1000000 2000000 250000
2019 2300000 3000000 90000

Пока что я просто пытаюсь построить графикпростая таблица, которая не разделяется по годам и выглядит следующим образом:

  Uni1    Uni2   Uni3    Uni1    Uni2   Uni3
1000000 2000000 250000 2300000 3000000 90000

Вот то, что я использую:

import matplotlib.pyplot as plt

plt.table(cellText = df.values.T)

Это работает и печатает весь фрейм данных,но когда я пытаюсь получить только одну строку, я получаю следующее:

plt.table(cellText = df['Value'].values.T)

TypeError: object of type 'numpy.int64' has no len()

Я знаю, что решение будет определять новый DataFrame, который состоит только из строки, которую я хочу построить, но я сомневаюсь, что это самый чистыйрешение.

1 Ответ

1 голос
/ 07 ноября 2019

Для построения столбца Значения:

plt.table(cellText = df[['Value']].values.T)

имейте в виду, что df[['Value']] возвращает DataFrame, но df['Value'] возвращает Series.

, создавая строки для каждого года, используя DataFrame.pivot_table:

df_table=df.pivot_table(index='Year',columns='Institution',values='Value')
print(df_table)

Institution     Uni1     Uni2    Uni3
Year                                 
2018         1000000  2000000  250000
2019         2300000  3000000   90000

, затем используйте plt.table:

plt.table(cellText = df_table.values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...