Цикл по кадрам данных Pandas и построение графиков для каждого столбца - PullRequest
0 голосов
/ 22 мая 2019

Я хотел бы создать функцию или цикл for, который будет отображать отсортированную горизонтальную гистограмму для каждого столбца DataFrame. Пример кода для одного столбца можно увидеть ниже. Функция plt.savefig () хороша, но не обязательна.

frame ['Population-current year'] - это один из столбцов в DataFrame. Я не могу сформулировать необходимую структуру цикла с точки зрения синтаксиса.

Заголовок DataFrame:

Название места Население-текущий год Санта-Фе 82980.0
Нэшвилл-Дэвидсон 654187.0
Sandia Park 72.0
Каменная гора 6209,0
Эшвилл 89318.0

Название места Pct изменения в населении, 2010-текущий год \ Санта-Фе 0,2277
Нэшвилл-Дэвидсон 0.1130
Sandia Park 0.0286
Каменная гора 0.0362
Эшвилл 0,0896

Название места Средний возраст населения Средний возраст жилья \ Санта-Фе 42,8 34,0
Нэшвилл-Дэвидсон 34,1 38,0
Sandia Park 60,2 24,0
Каменная гора 38,8 38,0
Эшвилл 38,6 44,0

Заранее спасибо.

ax = (frame['Population-current year']/1000).sort_values().plot(kind='barh', figsize=(8, 10), color='#86bf91', zorder=2, width=0.85)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)

ax.tick_params(axis="both", which="both", bottom="off", top="off", labelbottom="on", left="off", right="off", labelleft="on")

vals = ax.get_xticks()
for tick in vals:
    ax.axvline(x=tick, linestyle='dashed', alpha=0.4, color='#eeeeee', zorder=1)
ax.set_title("Population - 2017 (1000s)", weight='bold', size=12)
ax.set_xlabel("Population - 2017 (1000s)", labelpad=20, weight='bold', size=12)
ax.set_ylabel("City", labelpad=20, weight='bold', size=12)
ax.xaxis.set_major_formatter(StrMethodFormatter('{x:,g}'))

plt.savefig('pop_chart.png')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...