Python/Pandas: массив (назад) в DataFrame

Я применил следующую функцию для нормализации столбцов в моем фрейме данных.

from sklearn.preprocessing import normalize

pd.DataFrame(normalize(traffic, norm='l2', axis=1, copy=True, return_norm=False))

Однако эта функция возвращает массив

array([[ 0.19781966,  0.21981735,  0.        , ...,  0.05655909,
         0.        ,  0.00033033],
       [ 0.18050277,  0.2031944 ,  0.        , ...,  0.15848418,
         0.        ,  0.00032616],
       [ 0.14110768,  0.16995336,  0.        , ...,  0.0820779 ,
         0.        ,  0.00023619],

Есть ли способ записать нормализованные данные в исходный кадр данных трафика и заменить необработанные значения?

Я понял, что когда я подаю заявку

pd.DataFrame(normalize(traffic, norm='l2', axis=1, copy=True, return_norm=False))

все оригинальные имена столбцов и индекс исчезли.

1 ответ

Решение

Если normalize функция возвращает массив той же формы, что и traffic DF вы можете сделать это так:

pd.DataFrame(normalize(traffic, norm='l2', axis=1, copy=True, return_norm=False),
             columns=traffic.columns, index=traffic.index)
Другие вопросы по тегам