説明が難しい理由から、パンダのデータフレーム内のセルのブロックの平均値をランダムに設定したいと考えています。データフレームは常にsqrt(列数xインデックス数)の値を持ち、残りのすべてはNaNになります。値はほぼ均等に分布しているため、正しいサイズのセルのブロックを平均した場合、各ブロック内に1つの値があると予想されます。パンダのデータフレーム内のセルの平均ブロック
これは私の例です。 100列と100指標については、データフレーム全体にランダムに分布する100の値があります。私は、10x10ブロックあたり〜1の値があり、他はすべてNaNであることを期待しています。どのように私は、その中に10列、10の指標、および値(複数可)を平均化(1つのセルに各10×10ブロックを有効にすることができます
マイコード:?
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あなたは働いていない部分について詳しく説明できますか?そこにあるNaNや値の不一致?何も変更せずに作業している必要があります。 – Divakar
ランタイム警告が表示され、「Mean of empty slice」と表示され、結果のデータフレームは変更されません。 – Arnold