如何解决pandas 扩展操作:横截面统计窗口大小的限制
我注意到 pandas 的 expanding
函数中有一个奇怪的行为;说我有一个简单的数据框:
n_rows = 3
n_cols = n_rows+2
df = pd.DataFrame(np.random.randint(0,10,(n_rows,n_cols)))
#my particular df:
#df =
# [[8,1,7,7],# [7,5,4],# [3,0]]
现在我希望扩展平均操作的最后一列等于完整的横截面平均值:
pd.concat((df.expanding(axis=1).mean(),df.mean(1).rename('Full mean')),1)
#the output:
# 0 1 2 3 4 Full mean
#0 8.0 4.5 5.333333 5.0 7.000000 6.0
#1 7.0 4.0 2.666667 2.0 3.000000 3.4
#2 3.0 5.0 5.666667 7.0 4.666667 4.8
如我们所见,“全均值”列不等于列 id 4。相反,我们观察到的是 expanding
操作期间横截面平均的最大窗口大小限制为 { {1}}。
因此,我们在第 4 列的第一行中得到 (7+7+7)/3,而不是 (8+1+7+7+7)/5。
可以通过将 n_rows
截断为方形结构来验证窗口大小的上界:
df
为什么窗口大小对行数有这样一个上限,如何消除这个限制?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。