2016-09-23 9 views
0

を除くだから私はそれらの中にNA値を持つデータのこの束を得た:データ房で計算Zスコアが、NA

Data Dump

排除しながら、どのように私は、各列のzスコアを取得しますNAの値は?そのようなzスコアの出力は次のようになりますか?したがって、このため

Z-Score value output

は、前の質問に基づいており、私が持っているものです。

cols = list(df.columns) 
df[cols] 
for col in cols: 
    col_zscore = col + '_zscore' 
    df[col_zscore] = (df[col] - df[col].mean())/df[col].std(ddof="N.A.") 

が、私は例外TypeErrorを得ました。

私は本当に初心者です。私はあなたがNaNreplace最初N.A.が必要だと思うし、floatに値を変換

+0

私は確かに知らないが、私は「COL」は、明示的に整数またはそのように宣言する必要があることを疑いますリストは整数の配列として宣言する必要があります(コンパイラはcolについて仮定することができます)。ちょうど推測。 – ouflak

答えて

1

df = df.replace({'N.A.': np.nan}).astype(float) 

for col in df.columns: 
    if col != 'PE Trail': 
     col_zscore = col + '_zscore' 
     df[col_zscore] = (df[col] - df[col].mean())/df[col].std() 

print (df) 
    PE Trail PE fwd PB PE fwd_zscore PB_zscore 
0  NaN 1.00 1.0  1.317465 0.707107 
1  NaN 0.50 NaN  0.146385  NaN 
2  NaN 0.00 0.5  -1.024695 -0.707107 
3  NaN 0.25 NaN  -0.439155  NaN 

またtype値のパラメータddofstdではintあります。


場合に使用read_csv、パラメータ変換na_values原因N.A.NaNへ:

import pandas as pd 
import numpy as np 
import io 

temp=u"""PE Trail;PE fwd;PB 
N.A.;1;1 
N.A.;0.5;N.A. 
N.A.;0;0.5 
N.A.;0.25;N.A.""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), sep=";", na_values='N.A.') 
print (df) 
    PE Trail PE fwd PB 
0  NaN 1.00 1.0 
1  NaN 0.50 NaN 
2  NaN 0.00 0.5 
3  NaN 0.25 NaN 
関連する問題