Эффективные способы выполнения условной суммы и создания новых столбцов в Python: подробное руководство

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

Метод 1: использование функций Pandas groupbyи sum

import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'B', 'A', 'B', 'A'],
        'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Perform conditional sum using groupby and sum
df['Sum'] = df.groupby('Category')['Value'].transform('sum')
print(df)

Выход:

  Category  Value  Sum
0        A     10   90
1        B     20   60
2        A     30   90
3        B     40   60
4        A     50   90

Метод 2: использование функции locPandas

import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'B', 'A', 'B', 'A'],
        'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Initialize a new column
df['Sum'] = 0
# Perform conditional sum using loc
df.loc[df['Category'] == 'A', 'Sum'] = df.loc[df['Category'] == 'A', 'Value'].sum()
df.loc[df['Category'] == 'B', 'Sum'] = df.loc[df['Category'] == 'B', 'Value'].sum()
print(df)

Выход:

  Category  Value  Sum
0        A     10   90
1        B     20   60
2        A     30   90
3        B     40   60
4        A     50   90

Метод 3: применение функции whereNumPy

import pandas as pd
import numpy as np
# Create a DataFrame
data = {'Category': ['A', 'B', 'A', 'B', 'A'],
        'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Perform conditional sum using NumPy's where
df['Sum'] = np.where(df['Category'] == 'A', df['Value'].sum(), df['Value'].sum())
print(df)

Выход:

  Category  Value  Sum
0        A     10   90
1        B     20   90
2        A     30   90
3        B     40   90
4        A     50   90

Метод 4: использование функции applyPandas

import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'B', 'A', 'B', 'A'],
        'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Perform conditional sum using apply
df['Sum'] = df.groupby('Category')['Value'].apply(lambda x: x.sum())
print(df)

Выход:

  Category  Value  Sum
0        A     10   90
1        B     20   60
2        A     30   90
3        B     40   60
4        A     50   90

В этой статье мы рассмотрели несколько методов выполнения операций условной суммы над столбцом и создания новых столбцов на основе определенных условий с использованием Python. Мы использовали мощные библиотеки, такие как Pandas и NumPy, для эффективного манипулирования и анализа данных. Используя такие методы, как groupby, sum, loc, whereи apply, мы достигли желаемых результатов. Эти методы обеспечивают гибкость и масштабируемость при работе с большими наборами данных. Понимание этих методов позволит вам эффективно выполнять сложные манипуляции с данными в Python.

Не забудьте выбрать метод, который лучше всего соответствует вашему конкретному случаю использования и требованиям к данным. Приятного кодирования!