Нормализация кадра данных - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу нормализовать мой фрейм данных, но нормализация должна выполняться каждые 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()

1 Ответ

0 голосов
/ 19 апреля 2020

Неправильный способ доступа к данным. Чтобы изменить ячейки , вы всегда должны использовать loc или iloc (или, если необходимо, at и iat), и НИКОГДА не выбирать строки из столбца. И если вы хотите нормализовать по блокам, вы должны обрабатывать строки по блокам. Таким образом, простое исправление может быть:

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()
...