Как построить несколько столбцов столбцов под одинаковыми метками - PullRequest
1 голос
/ 09 октября 2019

Я ищу график данных, который содержит много столбцов, каждый из которых имеет метку «ИСТИНА» или «ЛОЖЬ» (импортировано из Excel).

Небольшой пример чего-то подобного будет выглядеть так:

df = pd.DataFrame({"a":["TRUE","FALSE","FALSE","TRUE","FALSE"],
"b":["TRUE","TRUE","FALSE","TRUE","TRUE"],
"c":["TRUE","FALSE","FALSE","FALSE","TRUE"],
"d":["FALSE","FALSE","TRUE","TRUE","FALSE"]})

Я ищу способ кратко описать, как значения TRUE и FALSE распределяются между столбцами. В идеале должен быть создан график, подобный приведенному ниже:

Example of what I'm looking for

, но я не уверен, как его создать. Я пытался понять список, как пытаться

sns.barplot([list(df[i].value_counts()) for i in df.columns])

, но получить что-то совершенно другое. Мне даже не нужно знать, как сделать легенду, я просто включил ее в пример, чтобы, надеюсь, лучше изобразить то, что я получаю.

Ответы [ 2 ]

1 голос
/ 09 октября 2019

У вас уже был более эффективный подход в вашей попытке. Вы должны вычислять value_counts для каждой серии, если вы хотите масштабировать ее до больших кадров. Вам просто нужно изменить plot.

f = pd.concat(
      [df[s].value_counts() for s in df], axis=1, sort=False)

f.plot(kind='bar')
1 голос
/ 09 октября 2019

Вот, пожалуйста,

df.stack().groupby(level=1).value_counts().unstack(0).plot.bar()

Вывод:

enter image description here

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