Как масштабировать несколько функций определенных столбцов внутри фрейма данных pandas, сохраняя при этом другие столбцы?

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Я делаю это следующим образом: 1- удаление столбцов из основного фрейма данных, для которого не требуется масштабирование функций 2 — теперь полученный фрейм данных содержит только столбцы, требующие масштабирования функций 3- объединение выпавших столбцов с масштабированными столбцами, чтобы получить окончательный фрейм данных

но

Я хочу сделать это без удаления каких-либо столбцов. купить с помощью команды, которая масштабирует первые 14 столбцов, но остальные сохраняются в фрейме данных, который я получаю на выходе

Ответ №1:

Загляните в DataFrame.apply(). Установка параметра axis равным 1 применит функцию вдоль столбцов. Вы можете поместить фильтр в эту функцию, чтобы включать только столбцы, которые вы хотите масштабировать.

Например:

 import pandas as pd

def scaling_function(x, col_to_scale):
    for col in x.index:
        if col in col_to_scale:
            #your scaling operation here
            x[col] = x[col] * 2
    return x

df = pd.DataFrame([[4, 9, 2]] * 3, columns=['A', 'B', 'C'])
col_to_scale = ['A', 'B']
scaled_df = df.apply(lambda x: scaling_function(x, col_to_scale), axis=1)
  

Удвоит значения в столбцах A и B, оставив C как есть.