このような種類のものには、pd.Panelを使用することをおすすめします。(アップデートを参照)。
import pandas as pd
import numpy as np
np.random.seed(0)
dfs = {i : pd.DataFrame(np.random.randint(10, size=(10, 5))) for i in range(3)}
pnl = pd.Panel(dfs)
その後は、axis=0
上の記述統計関数を適用することができます。
pnl.std(axis=0)
Out:
0 1 2 3 4
0 2.886751 2.081666 1.527525 2.516611 0.577350
1 2.081666 3.214550 2.645751 1.154701 2.516611
2 3.214550 4.041452 3.785939 2.645751 4.163332
3 3.511885 2.309401 1.527525 3.785939 0.577350
4 4.509250 4.163332 2.081666 1.732051 2.309401
5 1.000000 3.000000 2.081666 2.645751 3.000000
6 2.000000 1.527525 2.886751 1.527525 2.886751
7 2.645751 2.516611 2.516611 1.732051 0.577350
8 4.509250 0.577350 4.041452 2.081666 1.527525
9 1.527525 3.785939 2.516611 1.000000 1.154701
更新:
pd.Panel will be deprecated。その場合、DataFramesを連結してMultiIndexを使用するのが最も適したソリューションです。 pd.concatに辞書を渡すと、関数のキー引数として辞書キーが使用されます。あなたはレベル1の標準偏差を取る場合
今
dfs_combined = pd.concat(DFS)、結果は同じになります。
dfs_combined.std(level=1)
Out:
0 1 2 3 4
0 2.886751 2.081666 1.527525 2.516611 0.577350
1 2.081666 3.214550 2.645751 1.154701 2.516611
2 3.214550 4.041452 3.785939 2.645751 4.163332
3 3.511885 2.309401 1.527525 3.785939 0.577350
4 4.509250 4.163332 2.081666 1.732051 2.309401
5 1.000000 3.000000 2.081666 2.645751 3.000000
6 2.000000 1.527525 2.886751 1.527525 2.886751
7 2.645751 2.516611 2.516611 1.732051 0.577350
8 4.509250 0.577350 4.041452 2.081666 1.527525
9 1.527525 3.785939 2.516611 1.000000 1.154701
あなたがそれぞれの平均値とstdとはどういう意味ですか素子?各DFの列を意味しますか? – EdChum
'DFS'は3つのデータフレームのリストです。 1つの要素の平均は 'DFS [0] [index0、col0] + DFS [1] [index0、col0] + DFS [2] [index0、col0]/3'です。このように要約統計量を計算したいと思いますデータフレームの各要素 – Donbeo
この情報は、サンプルデータ、コード、予想されるアウトアウトで質問する必要があるとは思わないのですか? – EdChum