我有一个包含一列id的数据框,所有其他列都是数值,我想计算z-scores。这里有一个小节:
ID Age BMI Risk Factor
PT 6 48 19.3 4
PT 8 43 20.9 NaN
PT 2 39 18.1 3
PT 9 41 19.5 NaN
我的一些列包含我不想包含在z-score计算中的NaN值,因此我打算使用为这个问题提供的解决方案:how to zscore normalize pandas column with nans?
df['zscore'] = (df.a - df.a.mean())/df.a.std(ddof=0)
我有兴趣将此解决方案应用于除ID列之外的所有列,以生成一个新的数据框,并使用
df2.to_excel("Z-Scores.xlsx")
所以基本上,我如何计算每一列的z-分数(忽略NaN值),并将所有内容推送到一个新的数据帧中?
旁注:熊猫中有一个叫做“索引”的概念,它让我很害怕,因为我不太理解它。如果索引是解决这个问题的关键部分,请把你对索引的解释写下来。
如果要计算所有列的zscore,只需使用以下命令:
从列中生成一个列表,并删除不想计算Z分数的列:
使用Scipy's zscore函数:
如果不是数据框中的所有列都是数字,则可以使用
select_dtypes
函数将Z-score函数仅应用于数字列:相关问题 更多 >
编程相关推荐