У меня есть такой csv (разделитель ;
)
Day;col_1;col_2;col_3;month
20180101;652;0;25803;1
20180102;737;6;25677;1
20180103;653;10;27955;1
20180104;914;10;27722;1
[a lot of rows]
20181228;924;35;30191;12
20181229;721;18;28601;12
20181230;902;17;28098;12
20181231;778;30;28909;12
Я хотел бы построить на отдельной оси значения столбцов col_1
, col_2
и col_3
. На каждой оси я хотел бы иметь по одному окну на каждый месяц.
Я знаю, что это способ сделать это в seaborn только для одного столбца, но я хотел бы сделать это, используя только pandas
и matplotlib
:
import seaborn as sns
sns.boxplot(data=df, x='month', y='col1')
Проверив это в этом сообщении, я обнаружил, что это может быть довольно приблизительным к тому, что я хочу:
df.assign(index=df.groupby('month').cumcount()).pivot('index','month','col1').plot(kind='box')
Есть ли более эффективный подход?
Как добавить в один и тот же график несколько осей (имеется в виду подграфики) для каждого colX
?