Как добавить и изменить столбцы в pandas

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Введение в работу со столбцами в pandas

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

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

Кинга Идем в IT: пошаговый план для смены профессии

Добавление нового столбца в DataFrame

Добавление нового столбца в DataFrame — это одна из самых частых операций при работе с данными. Это позволяет расширять набор данных новыми признаками, которые могут быть полезны для анализа. Рассмотрим несколько способов, как это можно сделать.

Простой способ добавления столбца

Самый простой способ добавить новый столбец — это присвоить значение новому столбцу с помощью квадратных скобок. Этот метод интуитивно понятен и удобен для быстрого добавления данных:

Python
Скопировать код
import pandas as pd

# Создаем DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# Добавляем новый столбец
df['City'] = ['New York', 'Los Angeles', 'Chicago']
print(df)

Этот код создаст новый столбец City и добавит его в DataFrame. В результате DataFrame будет содержать три столбца: Name, Age и City.

Добавление столбца с вычисляемыми значениями

Иногда нужно добавить столбец, значения которого вычисляются на основе других столбцов. Например, можно создать столбец, который будет содержать возраст через 5 лет. Это полезно, когда нужно выполнить какие-либо расчеты или преобразования данных:

Python
Скопировать код
df['Age_in_5_years'] = df['Age'] + 5
print(df)

Этот код добавит новый столбец Age_in_5_years, значения которого будут на 5 лет больше, чем значения в столбце Age. Это позволяет легко добавлять новые признаки, которые могут быть полезны для анализа данных.

Добавление столбца с использованием функции

Иногда требуется добавить столбец, значения которого вычисляются с использованием более сложных функций. Например, можно использовать функцию для вычисления индекса массы тела (BMI) на основе столбцов Height и Weight:

Python
Скопировать код
def calculate_bmi(weight, height):
    return weight / (height ** 2)

# Добавляем столбцы Height и Weight
df['Height'] = [1\.65, 1.80, 1.75]
df['Weight'] = [55, 80, 70]

# Добавляем столбец BMI
df['BMI'] = df.apply(lambda row: calculate_bmi(row['Weight'], row['Height']), axis=1)
print(df)

Этот код добавит новый столбец BMI, значения которого будут рассчитаны на основе значений в столбцах Height и Weight. Это позволяет легко добавлять сложные вычисляемые признаки в DataFrame.

Изменение названий столбцов

Изменение названий столбцов может быть полезным для улучшения читаемости данных или приведения их к единому стилю. Это особенно важно при работе с большими наборами данных, где четкие и понятные названия столбцов могут значительно упростить анализ.

Переименование одного столбца

Для переименования одного столбца можно использовать метод rename. Этот метод позволяет задать новое имя для существующего столбца:

Python
Скопировать код
df.rename(columns={'Name': 'Full_Name'}, inplace=True)
print(df)

Этот код изменит название столбца Name на Full_Name. Использование метода rename с параметром inplace=True позволяет изменить DataFrame на месте, без необходимости создавать новый объект.

Переименование нескольких столбцов

Если нужно переименовать несколько столбцов, можно передать словарь с соответствиями старых и новых названий. Это удобно, когда требуется изменить названия нескольких столбцов одновременно:

Python
Скопировать код
df.rename(columns={'Age': 'Years', 'City': 'Location'}, inplace=True)
print(df)

Этот код изменит названия столбцов Age на Years и City на Location. Это позволяет легко и быстро переименовывать несколько столбцов в DataFrame.

Переименование столбцов с использованием метода set_axis

Еще один способ переименования столбцов — использование метода set_axis. Этот метод позволяет задать новые названия столбцов с помощью списка:

Python
Скопировать код
df.set_axis(['Full_Name', 'Years', 'Location', 'Age_in_5_years', 'Height', 'Weight', 'BMI'], axis=1, inplace=True)
print(df)

Этот код задаст новые названия для всех столбцов DataFrame. Использование метода set_axis может быть полезным, когда нужно переименовать все столбцы сразу.

Добавление столбца по нескольким условиям

Иногда требуется добавить столбец, значения которого зависят от нескольких условий. Это может быть полезно для создания новых категорий или признаков на основе существующих данных.

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

Для добавления столбца по нескольким условиям можно использовать метод apply с функцией lambda. Например, можно создать столбец, который будет содержать информацию о том, является ли человек взрослым:

Python
Скопировать код
df['Is_Adult'] = df['Years'].apply(lambda x: 'Yes' if x >= 18 else 'No')
print(df)

Этот код добавит столбец Is_Adult, который будет содержать Yes, если возраст больше или равен 18, и No в противном случае. Это позволяет легко добавлять новые признаки на основе условий.

Использование функции np.where

Для более сложных условий можно использовать функцию np.where из библиотеки NumPy. Это позволяет задавать несколько условий и соответствующие значения:

Python
Скопировать код
import numpy as np

df['Age_Group'] = np.where(df['Years'] < 18, 'Child', np.where(df['Years'] < 65, 'Adult', 'Senior'))
print(df)

Этот код добавит столбец Age_Group, который будет содержать Child, если возраст меньше 18, Adult, если возраст от 18 до 64, и Senior, если возраст 65 и старше. Это позволяет легко создавать новые категории на основе сложных условий.

Использование метода loc

Еще один способ добавления столбца по условиям — использование метода loc. Этот метод позволяет задавать значения для строк, которые удовлетворяют определенным условиям:

Python
Скопировать код
df['Category'] = 'Unknown'
df.loc[df['Years'] < 18, 'Category'] = 'Child'
df.loc[(df['Years'] >= 18) & (df['Years'] < 65), 'Category'] = 'Adult'
df.loc[df['Years'] >= 65, 'Category'] = 'Senior'
print(df)

Этот код добавит столбец Category и задаст значения Child, Adult или Senior в зависимости от возраста. Использование метода loc позволяет гибко задавать значения для строк, удовлетворяющих определенным условиям.

Преобразование списка в DataFrame и работа с ним

Иногда данные представлены в виде списков, и нужно преобразовать их в DataFrame для дальнейшей работы. Это часто встречается при загрузке данных из внешних источников или при работе с данными, полученными из API.

Преобразование списка в DataFrame

Для преобразования списка в DataFrame можно использовать метод pd.DataFrame. Этот метод позволяет создать DataFrame из списка списков или списка словарей:

Python
Скопировать код
data = [['Alice', 25, 'New York'], ['Bob', 30, 'Los Angeles'], ['Charlie', 35, 'Chicago']]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)

Этот код создаст DataFrame из списка data и задаст названия столбцов. В результате DataFrame будет содержать три столбца: Name, Age и City.

Добавление и изменение столбцов в новом DataFrame

После преобразования списка в DataFrame можно добавлять и изменять столбцы так же, как и в обычном DataFrame. Рассмотрим несколько примеров:

Python
Скопировать код
# Добавляем новый столбец
df['Age_in_5_years'] = df['Age'] + 5

# Изменяем название столбца
df.rename(columns={'City': 'Location'}, inplace=True)

print(df)

Этот код добавит новый столбец Age_in_5_years и изменит название столбца City на Location. Это позволяет легко расширять и изменять DataFrame, созданный из списка.

Добавление столбца с использованием метода assign

Еще один способ добавления столбцов — использование метода assign. Этот метод позволяет добавлять несколько столбцов одновременно:

Python
Скопировать код
df = df.assign(Age_in_10_years=df['Age'] + 10, Is_Adult=df['Age'].apply(lambda x: 'Yes' if x >= 18 else 'No'))
print(df)

Этот код добавит два новых столбца: Age_in_10_years, значения которого будут на 10 лет больше, чем значения в столбце Age, и Is_Adult, который будет содержать Yes, если возраст больше или равен 18, и No в противном случае. Использование метода assign позволяет удобно добавлять несколько столбцов одновременно.

Заключение

Работа со столбцами в pandas — это важный навык, который позволяет эффективно управлять данными. В этой статье мы рассмотрели основные операции: добавление новых столбцов, изменение названий столбцов, добавление столбцов по условиям и преобразование списка в DataFrame. Эти знания помогут вам более гибко и эффективно работать с данными в pandas.

Понимание этих операций и умение их применять на практике позволит вам решать широкий спектр задач, связанных с анализом данных. Независимо от того, работаете ли вы с небольшими наборами данных или большими объемами информации, умение эффективно управлять столбцами в pandas поможет вам извлекать полезную информацию и принимать обоснованные решения.

Читайте также