规范化数据帧



我想规范化我的数据帧,但规范化应该每16行进行一次,其中我有16*1550行和17列。我使用以下代码实现了这一点,它给出了一个警告。这是正确的方法吗?

for n in range(1550):
data_features[16*n:16*(n+1)][:] = (data_features[16*n:16*(n+1)][:] - data_features[16*n:16*(n+1)][:].mean())/data_features[16*n:16*(n+1)][:].std()

访问数据帧的方式是错误的。若要修改单元格,必须始终使用lociloc(或者,如果相关,atiat(,并且从不从列中选择行。如果你想按块进行规范化,你应该按块处理行。因此,一个简单的解决方案可能是:

for n in range(1550):
data_features.iloc[16*n:16*(n+1)] = (
data_features.iloc[16*n:16*(n+1)]
- data_features.iloc[16*n:16*(n+1)].mean()
)/data_features.iloc[16*n:16*(n+1)].std()

最新更新