ошибка неподдерживаемый тип (ы) операндов для +: 'int' и 'method' - PullRequest
0 голосов
/ 14 июля 2020

Что не так с моей гистограммой? Гистограмма не отображается, когда я использую имена переменных на этой оси y. y = [totalMales, totalFemales] # if I input numerical values it works, but it doesn't with variable names

#check total number of males
totalMales = newDF.loc[(newDF.Gender=='Male')].count #409
print("totalMales" + str(totalMales))


totalFemales = newDF.loc[(newDF.Gender=='Female')].count()  #77
print("totalFemales" + str(totalFemales))

#males are more likely to borrow than females 409 > 77

plt.style.use('ggplot')

x = ['Males', 'Females']
y = [totalMales, totalFemales]  # if I input numerical values it works, but it doesn't with variable names

x_pos = [i for i, _ in enumerate(x)]

plt.bar(x_pos, y, color='green')
plt.xlabel("Gender")
plt.ylabel("Total who Paid Off")
plt.title("Number of Males vs Females who Paid Off")

plt.xticks(x_pos, x)

plt.show()

сюжет изображения

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Пока у вас есть DataFrame, можно использовать больше встроенных функций. С помощью value_counts различные значения в определенном столбце подсчитываются и возвращаются в виде серии. Используя .plot.bar(), это можно напрямую отобразить на гистограмме. Ярлыки на x-as напрямую относятся к разным полам.

    # Count the values
    gender_count = newDF.Gender.value_counts()
    
    # Create plot
    gender_count.plot.bar()
    
    # Settings for plot
    plt.style.use('ggplot')
    plt.xlabel("Gender")
    plt.ylabel("Total who Paid Off")
    plt.title("Number of Males vs Females who Paid Off")
    plt.show()
1 голос
/ 14 июля 2020

count - метод, измените его (аналогично для totalFemale):

totalMales = newDF.loc[(newDF.Gender=='Male'), 'Gender'].count()

Также вы можете:

newDF.groupby('Gender').size().plot.bar()

или

newDF['Gender'].value_counts().plot.bar()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...