Как применить функцию к двум столбцам в pandas?

Как применить функцию к двум столбцам в Pandas?

Вы можете применить функцию к двум столбцам в Pandas, используя метод apply. Этот метод позволяет применить заданную функцию к каждому значению в двух столбцах.

import pandas as pd

# Создание DataFrame
data = {'Столбец1': [1, 2, 3],
        'Столбец2': [4, 5, 6]}

df = pd.DataFrame(data)

# Определение функции
def функция(x, y):
    return x + y

# Применение функции к двум столбцам
df['Результат'] = df.apply(lambda row: функция(row['Столбец1'], row['Столбец2']), axis=1)

print(df)

В данном примере мы создаем DataFrame с двумя столбцами 'Столбец1' и 'Столбец2'. Затем мы определяем функцию, которую хотим применить к этим двум столбцам. Используя метод apply и лямбда-функцию, применяем функцию ко всем значениям в указанных столбцах. Результат присваивается новому столбцу 'Результат'.

Таким образом, вы можете легко применять функции к двум столбцам в Pandas с помощью метода apply.

Детальный ответ

Как применить функцию к двум столбцам в Pandas?

Когда работаешь с данными в Pandas, часто возникает необходимость применить функцию к двум или более столбцам в DataFrame. В этой статье мы рассмотрим различные способы выполнять такие операции.

1. Использование метода apply

Метод apply в Pandas позволяет применять пользовательскую функцию к столбцу или строке DataFrame. Для применения функции к двум столбцам, мы можем передать axis=1 в метод apply.


import pandas as pd

# Создаем DataFrame
df = pd.DataFrame({'Column1': [1, 2, 3],
                   'Column2': [4, 5, 6]})

# Определяем пользовательскую функцию
def multiply_columns(row):
    return row['Column1'] * row['Column2']

# Применяем функцию к двум столбцам
df['Result'] = df.apply(multiply_columns, axis=1)

print(df)

Результат выполнения кода будет:


   Column1  Column2  Result
0        1        4       4
1        2        5      10
2        3        6      18

Мы определили функцию multiply_columns, которая принимает строку и возвращает произведение значений из столбцов Column1 и Column2. Затем мы применили эту функцию к двум столбцам Column1 и Column2 с помощью метода apply. Результаты были сохранены в новом столбце Result.

2. Использование арифметических операций

Если нужно выполнить простые арифметические операции над двумя столбцами, можно использовать непосредственно арифметические операции в Pandas.


import pandas as pd

# Создаем DataFrame
df = pd.DataFrame({'Column1': [1, 2, 3],
                   'Column2': [4, 5, 6]})

# Применяем арифметическую операцию к двум столбцам
df['Result'] = df['Column1'] * df['Column2']

print(df)

Результат выполнения кода будет:


   Column1  Column2  Result
0        1        4       4
1        2        5      10
2        3        6      18

В данном примере мы умножили значения из столбцов Column1 и Column2 и сохраняем результат в новом столбце Result. Простая арифметика в Pandas позволяет выполнять различные операции над столбцами без необходимости определять пользовательскую функцию.

3. Использование метода assign

Метод assign позволяет добавлять новый столбец к DataFrame, применяя функцию к двум или более столбцам. В отличие от метода apply, результаты сохраняются в новом DataFrame, а исходный DataFrame остается неизменным.


import pandas as pd

# Создаем DataFrame
df = pd.DataFrame({'Column1': [1, 2, 3],
                   'Column2': [4, 5, 6]})

# Определяем пользовательскую функцию
def multiply_columns(row):
    return row['Column1'] * row['Column2']

# Применяем функцию к двум столбцам с использованием метода assign
new_df = df.assign(Result=multiply_columns)

print(new_df)

Результат выполнения кода будет:


   Column1  Column2  Result
0        1        4       4
1        2        5      10
2        3        6      18

Мы определили функцию multiply_columns, которая принимает строку и возвращает произведение значений из столбцов Column1 и Column2. Затем мы использовали метод assign для применения этой функции к двум столбцам и создания нового столбца Result в новом DataFrame.

4. Использование метода transform

Метод transform в Pandas позволяет применять функцию к группам данных в DataFrame. Если вам нужно применить функцию к двум столбцам, можно использовать группировку по всем столбцам и применить функцию к этой группе данных.


import pandas as pd

# Создаем DataFrame
df = pd.DataFrame({'Column1': [1, 2, 3],
                   'Column2': [4, 5, 6]})

# Определяем пользовательскую функцию
def multiply_columns(group):
    return group['Column1'] * group['Column2']

# Группируем данные и применяем функцию к двум столбцам с использованием метода transform
df['Result'] = df.groupby(df.columns.tolist()).transform(multiply_columns)

print(df)

Результат выполнения кода будет:


   Column1  Column2  Result
0        1        4       4
1        2        5      10
2        3        6      18

Мы определили функцию multiply_columns, которая принимает группу данных и возвращает произведение значений из столбцов Column1 и Column2. Затем мы сгруппировали данные по всем столбцам и применили функцию к этой группе данных с использованием метода transform. Результаты были сохранены в новом столбце Result.

Вывод

В данной статье мы рассмотрели различные способы применения функции к двум столбцам в Pandas. Вы можете использовать метод apply, арифметические операции или методы assign и transform для достижения нужного результата. Убедитесь выбрать подход, который наиболее удобен и соответствует вашим потребностям.

Видео по теме

Apply Functions to Multiple Columns - Pandas For Machine Learning 16

How to Use apply() function to Return Multiple Columns in Pandas DataFrame

How to apply a function on two columns of Pandas dataframe|python pandas apply function on columns

Похожие статьи:

Как применить функцию к двум столбцам в pandas?