#python #pandas #matplotlib #seaborn
Вопрос:
У меня есть данные, состоящие из 3 столбцов, содержащих данные 2 категории, как указано ниже в:-
Я хочу получить строку ошибок, показывающую стандартное отклонение, используя схему подсчета от seaborn. Я сгенерировал барплот, используя код :-
ax = sns.countplot(x="variable",hue="value", data=pd.melt(data))
Как я могу получить панель ошибок, используя график подсчета, показывающий стандартное отклонение.
Комментарии:
1. Вы подсчитываете количество элементов в столбце типа
Ours
или
Ответ №1:
Из таких категориальных данных нельзя рассчитать среднее и стандартное отклонение. Вы можете рассчитать среднее и стандартное отклонение по всем трем Q (рисунок в конце):
Во-первых, давайте создадим df:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'Q1':['Ours', 'Ours', 'Ours', 'Google', "Google", "Google", "Google", "Google" , "Google", "Google", "Google"],
'Q2':['Ours', 'Ours', 'Ours', 'Ours', "Google", "Google", "Google", "Google", "Google", "Google", "Google"],
'Q3':['Ours', 'Ours', 'Ours', 'Ours', "Ours", "Google", "Google", "Google", "Google", "Google", "Google"]}
)
Затем мы можем подсчитать, сколько раз категория присутствует в каждом столбце, и построить новый df:
# get the count for each column:
Q1 = df['Q1'].value_counts()
Q2 = df['Q2'].value_counts()
Q3 = df['Q3'].value_counts()
# convert one pd.Series in a data frame. Add the others as new column
new_df = Q1.to_frame()
new_df['Q2'] = Q2
new_df['Q3'] = Q3
# convert the df to long format
new_df = new_df.transpose()
new_df = new_df.melt()
Созданный фрейм данных:
variable value
0 Google 8
1 Google 7
2 Google 6
3 Ours 3
4 Ours 4
5 Ours 5
С помощью этих данных мы можем построить гистограмму, включающую стандартное отклонение:
ax = sns.barplot(x="variable", y="value", data=new_df, ci="sd")
ax.set(xlabel='over all three Q', ylabel='counts')
plt.show()