Python 如何有效地标准化数据帧中的数字列

Python 如何有效地标准化数据帧中的数字列,python,numpy,pandas,Python,Numpy,Pandas,在panda数据框架中,我任意混合了标称列和实值列,我只想标准化数字列。我有这段代码,它可以完成任务。。但它使用了两个.tolist()函数调用使其工作。我很难理解索引,我觉得可能有一种更快的方法 class Standardizer(): def __init__(self, matrix): self.means_ = matrix.mean() self.stds_ = matrix.std() def transform(self, matrix): m

在panda数据框架中,我任意混合了标称列和实值列,我只想标准化数字列。我有这段代码,它可以完成任务。。但它使用了两个.tolist()函数调用使其工作。我很难理解索引,我觉得可能有一种更快的方法

class Standardizer():
  def __init__(self, matrix):
    self.means_ = matrix.mean()
    self.stds_ = matrix.std()

  def transform(self, matrix):
    matrix = matrix.fillna(self.means_)

    matrix[self.means_.index] = (matrix[self.means_.index] - self.means_.tolist()) / self.stds_.tolist()

    return matrix