4
我有一个多年的时间序列,并希望找到季节位数。熊猫TimeGrouper:.median()的行为不同,以.quantile(0.5)
数字上,这工作正常。但是,我得到一个MultiIndex
Series
作为输出,当我想到一个单独索引DataFrame
。
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
倒是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
我SH乌尔德指出:
- 它不是0.5th位数,我想在现实中
- 我知道我从格式只
mult_idx_series.unstack(1)
我想
我被惊讶不同的回报形态,并且想要理解推理。
我们能不能用一个单一的计算多位数呼叫?做'grouped.quantile([0.1,0.5,0.9])'给我'类型错误:( “不支持的操作数类型(个),/: '列表' 和 '浮动'”,在索引“u'occurred)从' 'scipy.scoreatpercentile()通过'pandas.core.frame.quantile()'' – 2014-08-29 07:39:39
你有什么版本的熊猫呢?它适用于我(0.14.1)。看到答案 – joris 2014-08-29 07:47:36
输出啊,就是这样。我仍然只在'0.13.1'上。谢谢 – 2014-08-29 07:57:13