Гистограмма Pandas отфильтрованного Dataframe

Это привело меня в ужас в течение последнего часа. Я могу нарисовать гистограмму, когда я использую:

hist(df.GVW, bins=50, range=(0,200)) 

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

 df[df.TYPE=='SU4'] 

Пока все работает. Когда я пытаюсь получить гистограмму этих отфильтрованных данных, я получаю ключевую ошибку: KeyError: 0L . Для гистограммы фильтрованных данных я использую следующее:

 hist(df[df.TYPE=='SU4'].GVW, bins=50, range=(0,200)) 

Есть где-то синтаксическая ошибка? Спасибо за помощь!

Возможно, попробуйте использовать атрибут .values (это возвращает данные как массив numpy), поэтому:

 hist(df[df.TYPE=='SU4'].GVW.values, bins=50, range=(0,200)) 

Я предполагаю, что причина этого не срабатывает, потому что метод matplotlib hist пытается получить доступ к первому элементу 0 -index ввода. Но поскольку серия использует свой целочисленный индекс как метку, а не местоположение, это дает ключевую ошибку для разрезанной серии (поскольку первый элемент больше не будет иметь индекс 0 )


И действительно, как говорит @AndyHayden, вы также можете использовать метод pandas hist :

 df[df.TYPE=='SU4'].GVW.hist(bins=50) 

У меня была аналогичная проблема, которая выводила ядро ​​данных, полученное с помощью запроса. Я обнаружил, что если после получения фрейма я использовал функцию reset_index () в производном фрейме, он решил проблему.