Как создать простой счетчик “да-нет” (Pandas)?

Вопрос или проблема

Я пытаюсь создать простой график подсчета, показывающий количество для статистики «да-нет». Однако у меня по оси y значения находятся между 0 и 1, и график не отображает фактическое количество переменной (перемасштабирование оси не помогло). В результате количество отображается по оси x. Я просто не знаю, как исправить эту простую проблему 😀 Пожалуйста, помогите мне >.>

dict = {"Состояние": ['нет','да'], "Курение":[1561,635]}
frame=pd.DataFrame(data=dict)
frame.set_index("Состояние", inplace=True)
frame

plt.figure(figsize=(8,6))
sns.set_palette("pastel", 8)

sns.countplot(data=frame,  x="Курение" )

plt.show()

Исходная структура словаря не подходила для графика подсчета. Функция countplot в Seaborn ожидает, что каждая строка будет представлять отдельное наблюдение, а не предварительно агрегированные данные.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


data = {"Курение": ["нет", "да"],
        "Количество": [1561, 635]}
df = pd.DataFrame(data)


plt.figure(figsize=(8, 6))
sns.set_palette("pastel")

sns.barplot(data=df, x="Курение", y="Количество")

plt.title("Количество по статусу курения")
plt.xlabel("Статус курения")
plt.ylabel("Количество")

plt.show()

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

Ответ или решение

Для создания простого графика подсчета "да-нет" в Python с помощью библиотек Pandas и Seaborn, вам нужно учитывать, что функция countplot ожидает данные в другом формате. Вместо предагрегированных данных, необходимо использовать отдельные наблюдения. Однако в вашем случае данные уже агрегированы, поэтому правильнее будет использовать barplot.

Вот как вы можете это исправить:

  1. Создайте DataFrame с данными о количестве ответов "да" и "нет".
  2. Используйте barplot для визуализации количества.

Ниже приведен пример кода на Python:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Создаем данные
data = {"Smoking": ["no", "yes"],
        "Count": [1561, 635]}
df = pd.DataFrame(data)

# Настраиваем размер графика
plt.figure(figsize=(8, 6))
sns.set_palette("pastel")

# Создаем барплот
sns.barplot(data=df, x="Smoking", y="Count")

# Настройка заголовка и подписей осей
plt.title("Количество людей по статусу курения")
plt.xlabel("Статус курения")
plt.ylabel("Количество")

# Отображаем график
plt.show()

В этом коде:

  • Мы создаем DataFrame df, который содержит два столбца: Smoking (статусы "да" и "нет") и Count (количество).
  • Затем мы используем seaborn.barplot для создания графика, на котором по оси X отображается статус курения, а по оси Y — количество людей с этим статусом.
  • Не забудьте добавить заголовок и подписи к осям для лучшей наглядности графика.

Этот метод обеспечивает правильное отображение ваших данных, согласно тому, как они агрегированы. Вы получите график, который показывает количество людей, относящихся к каждому из статусов, и это более корректный способ визуализации в данной ситуации.

Оцените материал
Добавить комментарий

Капча загружается...