具有DateTimeIndexed数组列表的pd.Series的箱形图

时间:2019-03-20 09:54:35

标签: python pandas series boxplot

我正在尝试绘制Series中包含的值的箱形图。我已经看到了这个post,但是我的情况有所不同。我的系列值是每天获取的N个D维数组的列表。我想要做的是每天绘制一个图,其中为N个数组的每一个绘制一个箱形图,但我得到的是TypeError: unhashable type: 'numpy.ndarray'。有什么想法吗?

谢谢。

EDIT1: 数据样本:

Date
2014-02-01    [-0.13934771706335308, 0.52431438441752, 0.303... -> Box plot 1
2014-02-02    [-0.15212360891411472, 0.5057162101551876, 0.3... -> Box plot 2
2014-02-03    [-0.15906372162522756, 0.4900703653941794, 0.2...
2014-02-04    [-0.18159376988693987, 0.48163379794842914, 0....
2014-02-05    [-0.18234763860841446, 0.4768498811155851, 0.2...

样品系列数据:

N= 200
D=20
ts = pd.Series([np.random.randn(D) for _ in range(N)], index=pd.date_range(start="2014-02-01", periods=N, freq="D"))

EDIT2: 我想我使用this ts.apply(lambda x: pd.Series(x)).T.boxplot(figsize=(10, 10), rot=90)了,但是输出很密集,尤其是当N大时。我试图通过在3个商务(B)天的范围内取值的总和,均值或最后一个值来对它进行抽样,但是这使我陷入麻烦。非常感谢您的帮助。我正在尝试的代码示例:

ts.resample('3D', label='right', closed='right', how='last').apply(lambda x: x.last()).T.boxplot(figsize=(20, 10), rot=90) 

返回:Must Produce Aggregated Value

EDIT3: 我想我得到了想要的结果

tss=ts.resample('2D', label='right', closed='right').agg(lambda x: x.sum())

0 个答案:

没有答案