Как отобразить два разных pandas фрейма данных в один график на matplotlib? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть два отдельных набора данных, используя pandas:

>>> suicides_sex = suicides_russia.groupby("sex")["suicides_no"].sum()
>>> suicides_sex
sex
female    214330
male      995412

&

>>> suicides_age = suicides_russia.groupby("age") 
>>> ["suicides_no"].sum().sort_values()
>>> suicides_age
age
5-14 years       8840
75+ years       74211
15-24 years    148611
25-34 years    231187
55-74 years    267753
35-54 years    479140

Я хочу узнать, как создать двойную гистограмму, используя matplotlib или две отдельные гистограммы, где я могу разделить каждую возрастную группу по полу.

Как объединить оба набора данных, чтобы создать либо одну столбчатую диаграмму с двумя столбцами, либо две отдельные столбчатые диаграммы для каждого пола?

1 Ответ

1 голос
/ 19 марта 2020

Вы можете использовать логические маски для разделения данных, а затем группировать по возрасту, как вы это сделали.

import matplotlib.pyplot as plt

suicide_male = suicide_russia.loc[suicide_russia['sex']=='male', :]
# now you basically have the same dataframe but for male only

suicide_male_age = suicides_male.groupby("age")["suicides_no"].sum()

plt.bar(height=suicide_male_age.values, x=np.arange(suicide_male_age.index))
plt.xticks(labels=suicide_male_age.index)
plt.show()

Затем вы можете повторить то же самое для женщин. Это, вероятно, не самый эффективный способ сделать это, но он работает.

Кроме того, я предположил, что значения столбца 'age' - это строки, поэтому я положил np.arange как x позиций столбцов и значений сами как xticks.

Надеюсь, что это помогает!

...