Python Pandas Matplotlib: как построить график без цифр?

#python #python-3.x #pandas #matplotlib

#python #python-3.x #pandas #matplotlib

Вопрос:

Я хочу построить гистограмму или графики на Python, используя фрейм данных Pandas, используя два столбца, которые не содержат чисел. Один столбец — это операционная система, другой — имя компьютера, я хочу построить график между ними, показывающий, какая ОС работает на скольких системах, пример данных, как показано ниже.

Пример данных, две из многих строк

Как я могу построить гистограмму или другие графики для этих двух столбцов. Когда я пытаюсь использовать приведенный ниже код:

 ax = dfdefault[['Operating System','Computer Name']].plot(kind='bar')
ax.set_xlabel("Hour", fontsize=12)
ax.set_ylabel("V", fontsize=12)
plt.show()
  

Я получаю эту ошибку:

 Error: 
TypeError: Empty 'DataFrame': no numeric data to plot  
  

Комментарии:

1. Я не уверен, что понимаю, что вы пытаетесь построить. Вам нужен график, похожий на гистограмму для Operating System ?

2. да, гистограмма будет служить цели, подойдут даже круговые диаграммы, я хочу что-то простое, что могло бы дать общее представление, гистограмма в порядке

Ответ №1:

Сначала вам нужно будет подсчитать вхождение каждой операционной системы, а затем построить график с использованием гистограммы или круговой диаграммы. bar уже ожидает числовые данные, которых у вас нет. Подсчет позаботится об этом. Вот пример использования круговой диаграммы:

 df = pd.DataFrame(
    [['asd', 'win'],
     ['sdf', 'mac'],
     ['aww', 'win'],
     ['dd',  'linux']],
    columns=['computer', 'os']
)
df['os'].value_counts().plot.pie()
  

введите описание изображения здесь

Столбчатая диаграмма будет работать аналогично. Просто измените pie на bar .

Комментарии:

1. У меня много, около 50 столбцов в pandas, представленных df [‘OS’, ‘Computer’, ‘c1’, ‘c2′,………’ c50′] . Я хочу построить круг или любую вещь в двух столбцах — [ОС, компьютер]. Извините, что спрашиваю глупости, но я не могу понять, как. @busybear

2. Важны ли другие столбцы? На самом деле, Computer в данном случае это не кажется уместным. Вам просто нужно подсчитать, сколько раз операционная система появляется в вашем фрейме данных правильно? Вот почему я считаю значения в df['os'] в сообщении.

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

4. Еще одна вещь, любым возможным способом объединить две ОС, такие как Windows 10, Windows 10 Home, , Windows server 2008, Windows Server 2008 R2, я хочу объединить одну или несколько, чтобы сделать их единым целым. Если это возможно.

5. Вам нужно будет проверить, содержится ли каждый элемент в списке / наборе значений, которые вы считаете «одинаковыми». Вы также можете создать словарь для этого. Если вы не уверены, как это сделать, вы можете отредактировать свой пост. Однако вам действительно следует спросить в новом сообщении, не можете ли вы найти свой ответ с помощью поиска.