由于难以解释的原因,我想要平均使用随机值稀疏填充的熊猫数据框中的单元块。数据框将始终有sqrt(列数×索引数)值 - 其余全部为NaN。这些值大致是均匀分布的,所以如果我平均分配正确大小的单元格块,我希望在每个块内都有一个值。对熊猫数据框中的单元格进行平均处理
这是我的例子。对于100列和100个索引,我有100个值随机分布在整个数据框中。我预计每个10x10区块会有〜1个值,其他都是NaN。我怎样才能把各10×10块为一个单元格(内它平均的10列,10个指数,和值(S)
我的代码:?
import pandas as pd
import numpy as np
import math
number_of_planes = 100
thicknesses = np.empty(number_of_planes)
cos_thetas = np.empty(number_of_planes)
phis = np.empty(number_of_planes)
for i in range(0,number_of_planes):
r = 1
phi = np.random.uniform(0,2*math.pi)
theta = math.acos(2*np.random.uniform(0.5,1) - 1)
thickness = np.random.uniform(0,0.4)
phis[i] = phi
cos_thetas[i] = math.cos(theta)
thicknesses[i] = thickness
thick_df = pd.DataFrame(columns=phis, index=cos_thetas)
for i in range(0, len(thicknesses)):
thick_df.set_value(cos_thetas[i], phis[i], thicknesses[i], takeable=False)
thick_df = thick_df.sort_index(axis=0, ascending=False)
thick_df = thick_df.sort_index(axis=1)
好吧,我想我明白,但是当我试图把它应用到我的代码没有奏效。我需要更改哪部分以便为我的100x100数据帧进行这项工作? – Arnold
@Rebecca你能否详细说明没有工作的部分?那里的NaNs或价值不匹配?应该没有任何变化的工作。 – Divakar
我得到运行时警告说“空片的平均值”和结果数据帧看起来没有变化。 – Arnold