【发布时间】:2014-10-22 11:14:47
【问题描述】:
我有一个多年的时间序列,想按季节查找分位数。
从数值上看,这很好用。但是,当我期望一个单一索引的 DataFrame 时,我得到一个 MultiIndex Series 作为输出。
import pandas as pd
import numpy as np
rng = pd.date_range(start='2014-01-01', end='2016-01-01', freq='30T')
a_data = np.random.normal(loc=np.pi, scale=np.e, size=len(rng))
b_data = a_data - 5
df = pd.DataFrame(index=rng, data={'a': a_data, 'b': b_data})
grouped = df.groupby(pd.TimeGrouper(freq='QS-DEC'))
mult_idx_series = grouped.quantile(0.5)
mult_idx_series
显示MultiIndex'd Series:
2013-12-01 a 3.079999
b -1.920001
2014-03-01 a 3.126490
b -1.873510
我期望(并且想要)与 .median() 相同的输出格式
median_df = grouped.median()
median_df
看起来像:
a b
2013-12-01 3.079999 -1.920001
2014-03-01 3.126490 -1.873510
我应该指出:
- 这不是我在现实中想要的第 0.5 个分位数
- 我知道我只是
mult_idx_series.unstack(1)我想要的格式
我对不同的返回形状感到惊讶,并想了解其中的原因。
【问题讨论】:
标签: python pandas time-series