2016-04-11 13 views
-1

私はすべて同じキーと列を持つDataFramesのリストを持っています。私は各要素の平均と標準を計算したいと思います。どうしたらいいですか?DataFramesのリストの統計を計算する方法

EDIT: 3つのDataFramesのリストDFSを想定し、平均関数を考えます。結果はデー​​タフレームDF_meanの値である必要があります。DF_mean[index0, col0] = DFS[0][index0, col0] + DFS[1][index0, col0] + DFS[2][index0, col0]/3

+0

あなたがそれぞれの平均値とstdとはどういう意味ですか素子?各DFの列を意味しますか? – EdChum

+0

'DFS'は3つのデータフレームのリストです。 1つの要素の平均は 'DFS [0] [index0、col0] + DFS [1] [index0、col0] + DFS [2] [index0、col0]/3'です。このように要約統計量を計算したいと思いますデータフレームの各要素 – Donbeo

+1

この情報は、サンプルデータ、コード、予想されるアウトアウトで質問する必要があるとは思わないのですか? – EdChum

答えて

2

このような種類のものには、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