how to zscore normalize pandas column with nans?

后端 未结 4 700
不思量自难忘°
不思量自难忘° 2020-12-06 00:53

I have a pandas dataframe with a column of real values that I want to zscore normalize:

>> a
array([    nan,  0.0767,  0.4383,  0.7866,  0.8091,  0.195         


        
4条回答
  •  感动是毒
    2020-12-06 01:04

    Well the pandas' versions of mean and std will hand the Nan so you could just compute that way (to get the same as scipy zscore I think you need to use ddof=0 on std):

    df['zscore'] = (df.a - df.a.mean())/df.a.std(ddof=0)
    print df
    
            a    zscore
    0     NaN       NaN
    1  0.0767 -1.148329
    2  0.4383  0.071478
    3  0.7866  1.246419
    4  0.8091  1.322320
    5  0.1954 -0.747912
    6  0.6307  0.720512
    7  0.6599  0.819014
    8  0.1065 -1.047803
    9  0.0508 -1.235699
    

提交回复
热议问题