Постройте гистограмму через все столбцы - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть данные, в которых есть несколько столбцов.

Country    Weight    # of food/day  ....
---------------------------------------------
USA         180         4
China       190         12
USA         150         2
Canada      300         10

Я хочу создать (отдельную) гистограмму для каждого из столбцов таким образом, чтобы гистограмма_1 отображала распределение «Страна», а гистограмма_2 -распределение 'Weight' и т. д.

В настоящее время я использую panda для загрузки и обработки данных.

Самый простой способ сделать это - поступить так?

for column in df:
    plt.hist(column)
    plt.show()

Пожалуйста, прости меня, если моя идея звучит так глупо.

Любая помощь будет высоко оценена, спасибо!

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Определение гистограммы для нечисловых или дискретных значений не является однозначным.Часто вопрос заключается в том, «сколько предметов каждого уникального вида существует?».Это может быть достигнуто через .value_counts.Поскольку вы говорите "# гистограмм == # столбцов (функций)" , мы можем создать по одному подпункту на столбец.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"Countries" : ["USA", "Mexico", "Canada", "USA", "Mexico"],
                   "Weight" : [180, 120, 100, 120, 130],
                   "Food" : [2,2,2,4,2]})

fig, axes = plt.subplots(ncols=len(df.columns), figsize=(10,5))
for col, ax in zip(df, axes):
    df[col].value_counts().sort_index().plot.bar(ax=ax, title=col)

plt.tight_layout()    
plt.show()

enter image description here

0 голосов
/ 06 декабря 2018

Если вам нужны гистограммы в разных окнах, вы можете сделать это следующим образом:

df.set_index('Country', inplace=True)
for col in df.columns:
    df[col].plot.bar()
    plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...