Python выводит гистограмму из столбца данных - PullRequest
0 голосов
/ 26 мая 2018

Глядя на построение гистограммы, исходящей из фрейма данных, мне, кажется, не хватает преобразования в правильный тип объекта, с которым может справиться matplotlib.Вот несколько неудачных попыток.Как мне это исправить?

И вообще, как вы обычно спасаете что-то подобное?

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

filter(lambda v: v > 0, df['foo_col']).hist(bins=10)

---> 10 фильтр (лямбда-версия: v> 0, df ['foo_col']). Hist (bins = 100) AttributeError: у объекта 'filter' нет атрибута 'Hist '

hist(filter(lambda v: v > 0, df['foo_col']), bins=100)

---> 10 Hist (фильтр (лямбда v: v> 0, df [' foo_col ']), bin = 100) Ошибка типа:' Series 'объект не может быть вызван

1 Ответ

0 голосов
/ 26 мая 2018

Судя по всему, filter является частью стандартной библиотеки .IIUC, вы просто хотите отфильтровать ваш фрейм данных для построения гистограммы значений > 0.Для этого у Pandas есть собственный синтаксис:

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt

data = np.random.randint(-50, 1000, 10000)

df = pd.DataFrame({'some_data': data})

df[df['some_data'] >= 0].hist(bins=100)
plt.show()

Обратите внимание, что это будет работать намного быстрее, чем когда-либо надеялись встроенные Python (это не имеет большого значения в моем тривиальном примере, но это будет с большими наборами данных)).По возможности важно использовать методы pandas с фреймами данных, потому что во многих случаях вычисления будут векторизованы и выполнены в высокооптимизированном коде C / C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...