Ошибка в построении частотной гистограммы из данных CSV - PullRequest
0 голосов
/ 05 февраля 2020

Я работаю с CSV-файлом с модулем pandas на python3. CSV-файл состоит из 5 столбцов: работа, название компании, описание работы, количество отзывов, место работы; и я хочу построить частотную гистограмму, где я выбираю только задания, содержащие слова «инженер-механик», и нахожу частоты 5 наиболее часто встречающихся мест для задания «инженер-механик».

Итак, я определил переменная englo c, в которой хранятся все задания "инженер-механик".

engloc=df[df.position.str.contains('mechanical engineer|mechanical engineering', flags=re.IGNORECASE, regex=True)].location

и сделал гистограмму с помощью matplotlib с кодом, который я нашел в Интернете

 x = np.random.normal(size = 1000)
 plt.hist(engloc, bins=50)
 plt.gca().set(title='Frequency Histogram ', ylabel='Frequency');

, но он напечатал вот так

enter image description here

Как я могу построить правильную частотную гистограмму, где она строит, используя только 5 наиболее частых местоположений для заданий, содержащих слова "инженер-механик", вместо того, чтобы поместить все местоположения в график?

Это пример из файла CSV csv data screenshot

1 Ответ

1 голос
/ 05 февраля 2020

Что-то в следующих строках должно помочь вам с числовыми данными:

import numpy as np
counts_, bins_ = np.histogram(englog.values)
filtered = [(c,b) for (c,b) in zip(counts_,bins_) if counts_>=5]
counts, bins = list(zip(*filtered))
plt.hist(bins[:-1], bins, weights=counts)

Для типа строки попробуйте:

from collections import Counter 
coords, counts = list(zip(*Counter(englog.values).most_common(5)))
plt.bar(coords, counts)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...