【发布时间】:2021-03-04 04:41:39
【问题描述】:
我对某购物中心的一些入口传感器数据执行了异常值检测。我想为每个入口创建一个图并突出显示异常值(在数据框中的 outlier 列中标记为 True)。
这是两个入口和六天时间跨度的数据的小sn-p:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"date": [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6],
"mall": ["Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1", "Mall1"],
"entrance": ["West", "West","West","West","West", "West", "East", "East", "East", "East", "East", "East"],
"in": [132, 140, 163, 142, 133, 150, 240, 250, 233, 234, 2000, 222],
"outlier": [False, False, False, False, False, False, False, False, False, False, True, False]})
为了创建几个图(完整数据有二十个入口),我在seaborn中遇到了lmplot。
sns.set_theme(style="darkgrid")
for i, group in df.groupby('entrance'):
sns.lmplot(x="date", y="in", data=group, fit_reg=False, hue = "entrance")
#pseudo code
#for the rows that have an outlier (outlier = True) create a red dot for that observation
plt.show()
我想在这里完成两件事:
- 线图而不是散点图。我没有成功使用 sns.lineplot 为每个入口创建单独的图,因为 lmplot 似乎更适合于此。
- 对于每个入口图,我想显示哪些观察值是异常值,最好显示为红点。我尝试在绘图尝试中编写一些伪代码。
【问题讨论】:
标签: python pandas matplotlib seaborn