PythonでDataframeを列あるいは行単位でまとめて標準化(zscore)する
標準化:平均を0、分散を1となるように値を変換すること
RNA-seqで得られた遺伝子発現量(TMM, TPMなど)を遺伝子間で比較する際、値をzscoreか、log10かのどちらかで取ることがあると思います。
今回はzscoreの取り方を備忘録として書きます。
やり方
def mean_norm(df_input):
return df_input.apply(lambda x: (x-x.mean())/ x.std(), axis=1)
# 列ごとの標準化の場合は axis=0
以上。
上記の関数のdf_inputのところにdataframeを代入すれば、標準化ができる。