问题描述
我注意到 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 (将#修改为@)