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)