规范化数据框
Normalizing a dataframe
我想规范化我的数据框,但规范化应该每 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()
您访问数据框的方式有误。要修改 单元格 ,您必须始终使用 loc
或 iloc
(或者,如果相关,at
和 iat
)并且永远不要 select 列中的行。如果你想按块标准化,你应该按块处理行。所以一个简单的修复可能是:
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()
我想规范化我的数据框,但规范化应该每 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()
您访问数据框的方式有误。要修改 单元格 ,您必须始终使用 loc
或 iloc
(或者,如果相关,at
和 iat
)并且永远不要 select 列中的行。如果你想按块标准化,你应该按块处理行。所以一个简单的修复可能是:
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()