Построение нескольких гистограмм в динамическом фрейме данных Python - PullRequest
0 голосов
/ 08 июня 2018

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

COLUMN_NM    DISTINCT_COUNT    MAX_COL_VALUE    MIN_COL_VALUE   NULL_COUNT
COL_A         123                 456                111              56
COL_B         15678               222                4                 3456
COL_C         18994               456                76               43               
...

Данные в COLUMN_NM являются динамическими, поскольку этот DataFrame загружается с различными таблицами для анализа.То, что я хочу сделать, это график текущих данных, которые находятся в DataFrame.Мне нужна гистограмма для DISTINCT_COUNT, другая для MAX_COL_VALUE и т. Д., Все по столбцам.Таким образом, COLUMN_NM будет представлен вдоль оси x

То, что у меня пока есть, явно неверно, но вы понимаете, что я пытаюсь сделать.

distinct = grid[('COLUMN_NM', 'DISTINCT_COUNT')].plot(kind=bar)
max_col = grid[('COLUMN_NM', 'MAX_COL_VALUE')].plot(kind=bar)
min_col = grid[('COLUMN_NM', 'MIN_COL_VALUE')].plot(kind=bar)
null_cnt = grid[('COLUMN_NM', 'NULL_COUNT')].plot(kind=bar)

У меня есть все необходимые операторы импорта.Я хочу, чтобы на выходе было 4 графика, и я смогу указать больше параметров гистограммы после того, как получу эту работу.Кроме того, было бы легче обернуть это в цикл for или функцию?

1 Ответ

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

Да, я бы рекомендовал сделать это в цикле:

for col in ['DISTINCT_COUNT', 'MAX_COL_VALUE', 'MIN_COL_VALUE', 'NULL_COUNT']:
    grid[['COLUMN_NM', col]].set_index('COLUMN_NM').plot.bar(title=col)

Проблемы с вашим кодом были:

  • grid[('COLUMN_NM', 'DISTINCT_COUNT')] не будет работать, потому что выиспользуя кортеж, вместо [(...)] вы хотите [[...]], чтобы выбрать подмножество столбцов
  • Вы также хотите установить столбец, по которому вы хотите сгруппировать столбцы (COLUMN_NM) в качестве индекса
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...