DataFrames в Pandas — это основа для обработки данных в Python. Добавление новых столбцов — распространённая задача, и Pandas предлагает несколько эффективных способов её решения. В этой статье рассматриваются четыре основных метода, с выделением их сильных и слабых сторон, чтобы помочь вам выбрать наилучший подход для вашей ситуации.
Содержание
Метод с использованием оператора []: Быстрый и простой способ
Это самый простой метод, идеально подходящий для добавления столбцов на основе существующих данных или простых вычислений. Вы напрямую присваиваете значения новому столбцу, используя квадратные скобки.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['New York', 'London', 'Paris']
print(df)
Ограничения: Этот метод не позволяет вставлять столбец в определённую позицию и требует, чтобы длина данных нового столбца совпадала с длиной DataFrame.
Метод df.insert()
: Точное размещение столбца
df.insert()
обеспечивает больший контроль, позволяя указать индекс (позицию) столбца. Он принимает три аргумента: позицию, имя столбца и данные.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['New York', 'London', 'Paris'])
print(df)
Лучше всего подходит для: Ситуаций, когда порядок столбцов имеет решающее значение.
Метод df.assign()
: Эффективное добавление нескольких столбцов
df.assign()
особенно полезен для одновременного добавления нескольких столбцов или создания новых столбцов на основе вычислений. Важно отметить, что он возвращает *новый* DataFrame, оставляя исходный неизменным.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['New York', 'London', 'Paris'], Age_Squared=df['Age']**2)
print(df)
Лучше всего подходит для: Добавления нескольких столбцов и вычисляемых столбцов; его неизменяемость предотвращает случайную потерю данных.
Метод df.loc()
: Условное создание столбцов
df.loc()
предлагает максимальную гибкость, позволяя условное создание столбцов на основе выбора строк и булевого индексирования.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Young'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Older'
print(df)
Лучше всего подходит для: Добавления столбцов на основе сложных условий; требует знакомства с булевым индексированием.
Заключение: Оптимальный метод зависит от ваших конкретных потребностей. Оператор [] подходит для быстрого добавления простых столбцов, df.insert()
управляет позицией столбца, df.assign()
эффективно обрабатывает несколько или вычисляемых столбцов, а df.loc()
позволяет создавать столбцы условно. Выберите метод, который наилучшим образом сочетает читаемость и функциональность для вашей задачи.