嗨,我有一个数据框,其中包含“年”,“月”,“天”,“小时”和“值”(每小时)。
我使用seaborn boxplot可视化离群值并将其隐藏(使用showflier = False
,请参见下面的示例代码)。有没有一种快速的方法可以使用seaborn boxplot属性替换所有级别(例如,年,月,日,小时)的异常值?
原始数据集包含时间和值:Y-M-D H:M:S,值。 我将时间转换为日期时间,并添加了新列-年,月,日,小时。
要基于所有级别的箱形图删除异常值,我可能会按不同的时间间隔使用groupby,想知道是否可以使用seaborn箱形图属性?或者在这种情况下最好的方法是什么?由于我需要在数据可视化中生成这些图。
sns.boxplot(x='year', y='Value',data=data,ax=axes[0,0],showfliers=False)
sns.boxplot(x='month',y='Value',data=data,ax=axes[0,1],showfliers=False)
sns.boxplot(x='week', y='Value',data=data,ax=axes[1,0],showfliers=False)
sns.boxplot(x='day', y='Value', data=data,ax=axes[1,1],showfliers=False)
sns.boxplot(x='hour',y='Value',data=data,ax=axes[2,0],showfliers=False)
# The original dataset looks like this
2017-03-31 15:45:00,10
2017-03-31 16:00:00,23
2017-03-31 16:15:00,45
2017-03-31 16:30:00,5
2017-03-31 16:45:00,46
2017-03-31 17:00:00,7
2017-03-31 17:15:00,3
2017-03-31 17:30:00,86
2017-03-31 17:45:00,51
2017-03-31 18:00:00,75
2017-03-31 18:15:00,74
2017-03-31 18:30:00,09
2017-03-31 18:45:00,79
2017-03-31 19:00:00,72
2017-03-31 19:15:00,80
2017-03-31 19:30:00,5
2017-03-31 19:45:00,45
2017-03-31 20:00:00,7
2017-03-31 20:15:00,7
2017-03-31 20:30:00,73
2017-03-31 20:45:00,88
....
#Converted the above data into the df below
Date Value year month week day hour
...
17 2013-11-08 06:00:00 75 2013 11 44 5 06
18 2013-11-08 07:00:00 49 2013 11 44 5 07
19 2013-11-08 08:00:00 757.0 2013 11 44 5 08
20 2013-11-08 09:00:00 209.0 2013 11 44 5 09
21 2013-11-08 10:00:00 56.0 2013 11 44 5 10
22 2013-11-08 11:00:00 540.0 2013 11 44 5 11
23 2013-11-08 12:00:00 229.0 2013 11 44 5 12
24 2013-11-08 13:00:00 413.0 2013 11 44 5 13
25 2013-11-08 14:00:00 427.0 2013 11 44 5 14
...