Группировать каждый столбец в цикле for и печатать графики в Python - PullRequest
0 голосов
/ 29 октября 2018

Я видел похожие вопросы ... Но у меня все по-другому, потому что я хочу сделать что-то в цикле for, и у меня неожиданное поведение.

df = pd.DataFrame([['1', '0', '1', '0'], ['Male', 'Female', 'Female', 'Male'], ['LabelX', 'LabelY', 'LabelY', 'LabelX']]).T
df.columns = ['col1', 'col2', 'label']


print(df.groupby('label')['col2'].value_counts().unstack(0).plot.barh())
print(df.groupby('label')['col1'].value_counts().unstack(0).plot.barh())

НЕКОТОРЫЕ мои графики печатаются один под другим, со странной проблемой выравнивания, но по крайней мере они печатаются. В другое время они могут вообще не печататься .. Я бы просто получил

AxesSubplot(0.125,0.11;0.775x0.77)
AxesSubplot(0.125,0.11;0.775x0.77)

без участков вообще

Это меньший набор данных, для многих категориальных столбцов, подобных приведенным выше, после тщательной очистки данных, чтобы убедиться, что столбцы типа object не имеют других смешанных типов, я хотел бы запустить цикл for следующим образом:

for col_name in df.columns:
    if col_name != 'label':
        print(df.groupby('label')[col_name].value_counts().unstack(0).plot.barh())
        print()

Предполагается, что приведенный выше код работает. Иногда печатает графики, иногда нет. Не может понять, что происходит.

По сути, я хотел бы запустить цикл for, создать гистограмму, сгруппированную по моему столбцу label, как в примере DataFrame, и просто просмотреть частоту. Но, как я уже сказал, графики могут печататься или не печататься. Мне все равно, как выглядят гистограммы. Я просто хочу сгруппировать по категориям, и у меня есть столбцы с показателем частоты для моей метки в каждой категории. Я также не волнует, что это за библиотека, которую вы используете

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