2016-04-11 17 views
-1

listesindeki istatistiklerin hesaplanması DataFrames'ın hepsinin aynı anahtar ve sütunlara sahip bir listesi var. Her elemanın ortalamasını ve std'sini hesaplamak istiyorum. Nasıl yapabilirim?DataFrames

EDIT: Üç DataFrames'in bir listesini DFS varsayalım ve ortalama işlevi düşünün. Sonuç DF_mean[index0, col0] = DFS[0][index0, col0] + DFS[1][index0, col0] + DFS[2][index0, col0]/3

+0

Her birinden ortalama ve std neyi kastediyorsunuz eleman? Her df için sütun mu demek istiyorsun? – EdChum

+0

"DFS" nin 3 veri çerçevesinin bir listesi olduğunu varsayalım. Bir elemanın ortalaması 'DFS [0] [index0, col0] + DFS [1] [index0, col0] + DFS [2] [index0, col0]/3' Bu şekilde özet istatistikleri hesaplamak istiyorum veri çerçevelerinin her elemanı. – Donbeo

+1

Bu bilginin örnek veriler, kod ve beklenen çıkış ile ilgili olması gerektiğini düşünmüyor musunuz? – EdChum

cevap

2

Ben şeyler bu tür pd.Panel kullanarak öneriyoruz eleman değere sahip bir dataframe DF_mean olmalıdır. (Güncellemeye bakın).

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) 

Sonra axis=0 üzerinde tanımlayıcı istatistikler işlevleri uygulayabilirsiniz:

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 

Güncelleme:

pd.Panel will be deprecated. Bu durumda en uygun çözüm DataFrames'e uymak ve MultiIndex'i kullanmaktır. Bir sözlüğü pd.concat'e iletirseniz, bu işlevin anahtar argümanı olarak sözlük anahtarlarını kullanır. Eğer 1. seviyede standart sapmayı alırsak

Şimdi

dfs_combined = pd.concat (DFS), sonuç aynı olacaktır:

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 
İlgili konular