Я видел похожие вопросы ... Но у меня все по-другому, потому что я хочу сделать что-то в цикле 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, и просто просмотреть частоту. Но, как я уже сказал, графики могут печататься или не печататься. Мне все равно, как выглядят гистограммы. Я просто хочу сгруппировать по категориям, и у меня есть столбцы с показателем частоты для моей метки в каждой категории. Я также не волнует, что это за библиотека, которую вы используете