Seaborn и Pandas, сгруппированный коробочный участок - PullRequest
2 голосов
/ 20 апреля 2020

Я довольно новичок в Python / data в целом, и мне трудно обдумать это

В настоящее время у меня есть 3 фрейма данных, которые выглядят так:

| A | B | C | Type  | 
| 1 | 2 | 6 | Worst |
| 3 | 4 | 5 | Worst | 

| A | B | C | Type   | 
| 1 | 2 | 3 | Medium |

| A | B | C  | Type | 
| 1 | 5 | 20 | Worst|  

Я пытаюсь создать сгруппированный блок-график, в котором каждый А из 3-х типов получает блок-блок и группируется вместе, то же самое относится и к В и C

Я не уверен, как присоединиться все эти кадры данных вместе, чтобы я мог отправить их в функцию seborn catplot. Кажется, не так много документации о том, как настроить данные.

Ответы [ 2 ]

1 голос
/ 20 апреля 2020
data1 = pd.DataFrame({'A':[1,3], 'B':[2,6], 'C':[6,5] , 'Type':['Worst','Worst']})
data2 = pd.DataFrame({'A':[1], 'B':[2], 'C':[3], 'Type':['Medium']})
data3 = pd.DataFrame({'A':[1], 'B':[5], 'C':[20], 'Type':['Worst']})
df=pd.concat([data1,data2,data3], join='inner')
plt.figure(figsize= (6,10)
plt.subplot(3,1,1)
sns.boxplot(data=df, x ='A', y='Type')
plt.subplot(3,1,2)
sns.boxplot(data=df, x ='B', y='Type')
plt.subplot(3,1,2)
sns.boxplot(data=df, x ='C', y='Type')
plt.show()

enter image description here

1 голос
/ 20 апреля 2020

Сначала объедините три кадра данных с concat, а затем используйте seaborn, чтобы сгенерировать коробочные диаграммы из результирующего кадра данных

import seaborn as sns

# generate the new data frame
df4 = pd.concat([df1, df2, df3])

# Do the boxplot
sns.boxplot(data=df4, x='Type', y='A')
...