2
このようなDataFrameがあるとします。私の特定のケースパンダでブロック平均を計算する方法DataFrame
a b c d e
0 0.000000 0.000000 0.000000 0.000000 0.976492
1 0.000000 3.589563 0.000000 0.400287 0.000000
2 0.000000 0.000000 0.247323 0.000000 0.000000
3 0.000000 0.000000 0.000000 0.079501 0.000000
4 0.136868 0.000000 0.223572 0.153744 0.000000
5 0.000000 0.000000 0.494390 0.311590 0.000000
6 0.000000 0.000000 0.756897 0.000000 0.039769
7 0.000000 0.000000 0.000000 1.006561 0.000000
8 0.651060 0.588797 0.000000 0.000000 0.028943
9 1.040841 0.000000 0.000000 0.000000 0.879489
で
df = pd.DataFrame(np.random.randn(10,5), columns=['a','b','c','d','e'])
idx = np.random.randint(0,2,(10,5))
df = abs(df * idx)
私は非ゼロの各ブロックの手段を計算したいと思います。例えば、第二の最後の列(D列)はフォームの一連を生じる全
0 0.000000
1 0.400287
2 0.000000
3 0.11662267564906763
4 0.11662267564906763
5 0.11662267564906763
6 0.000000
7 1.006561
8 0.000000
9 0.000000
解明:
私は非ゼロのブロックが意味することは、任意の列のためのものです、連続した非ゼロエントリーを持つブロック。たとえば、列aは2つのブロックを持ち、1つはインデックス= 4、値= 0.136868で発生し、もう1つはインデックス= 8,9および値= [0.651060,1040841]で発生します。私は各ブロックの平均が欲しい。
解明2:カラムの場合 は、出力は、位置8,9、最後の2つのエントリの平均値が得られる
0 0.000000
1 0.000000
2 0.000000
3 0.000000
4 0.136868
5 0.000000
6 0.000000
7 0.000000
8 0.8459504999999999
9 0.8459504999999999
あろう。
「各ゼロ以外のブロックの平均」の説明ができますか?ゼロブロックでないと出力が「0」になるのはなぜですか? – jezrael
@jezrael私の更新を見てください。ありがとう! – zsljulius
ありがとうございます。しかし、なぜ出力が '(float1、float2、float3、float4、float5)、index = ['a'、 'b'、 'c'、 'd'、 'e']))'?なぜなら、必要数は列単位であるからです。 – jezrael