Как Добавить Новый Столбец в DataFrame Pandas

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

К концу этого руководства вы научитесь:

  • Как добавить новый столбец в DataFrame Pandas

  • Как создать новый столбец постоянных значений в DataFrame Pandas

  • Как создать новый столбец на основе значений другого столбца

Содержание

Создание образца DataFrame Pandas

Чтобы следовать этому учебному пособию, вы можете скопировать и вставить код ниже в свой любимый редактор кода. Если у вас есть свой собственный набор данных, не стесняйтесь использовать его, хотя ваши результаты могут отличаться. Давайте посмотрим на наш набор данных:

# Создаем пример Pandas DataFrame
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

print(df)

# Возвращает:
#        Имя  Местоположение   Сумма
# 0     Джейн         Торонто   99.99
# 1     Митч        Нью-Йорк  123.12
# 2     Алекс    Лос-Анджелес  150.23
# 3      Иван        Ванкувер   52.34
# 4  Мелисса           Сиэтл   12.34

В приведенном выше DataFrame у нас есть три столбца: ['Name', 'Location', 'Amount']. Теперь, когда у нас есть DataFrame, давайте приступим к добавлению новых столбцов!

Как добавить столбец в DataFrame Pandas с постоянным значением

В этом разделе вы узнаете, как добавить в DataFrame Pandas столбец с постоянным значением. Самый простой способ сделать это - это непосредственно присвоить значение новому столбцу. Это присваивает значение каждой записи в столбце DataFrame.

Давайте посмотрим, как это выглядит:

# Добавляем постоянное значение в Pandas DataFrame
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

# Добавляем столбец 'Компания' с постоянным значением 'datagy'
df['Компания'] = 'datagy'

print(df)

# Возвращает:
#        Имя  Местоположение   Сумма Компания
# 0     Джейн         Торонто   99.99   datagy
# 1     Митч        Нью-Йорк  123.12   datagy
# 2     Алекс    Лос-Анджелес  150.23   datagy
# 3      Иван        Ванкувер   52.34   datagy
# 4  Мелисса           Сиэтл   12.34   datagy

В приведенном выше блоке кода, мы назначили одно значение (в данном случае строку 'datagy') всему столбцу DataFrame.

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

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

Давайте посмотрим, как добавить новый столбец из списка:

# Добавляем новый столбец в Pandas DataFrame из списка
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

# Создаем новый столбец 'Страна' из списка
df['Страна'] = ['Канада', 'США', 'США', 'Канада', 'США']
print(df)

# Возвращает:
#        Имя  Местоположение   Сумма  Страна
# 0     Джейн         Торонто   99.99  Канада
# 1     Митч        Нью-Йорк  123.12     США
# 2     Алекс    Лос-Анджелес  150.23     США
# 3      Иван        Ванкувер   52.34  Канада
# 4  Мелисса           Сиэтл   12.34     США

В приведенном выше коде мы присвоили список новому столбцу DataFrame в Pandas. Важно отметить, что длина списка должна точно соответствовать количеству записей в DataFrame. В противном случае Pandas выдаст ValueError, указывающий на несоответствие длин.

Как добавить столбец в фрейм данных Pandas из словаря

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

Давайте посмотрим, как мы можем адаптировать информацию о странах, исходя из города, из которого человек родом:

# Добавляем столбец на основе словаря с помощью Pandas
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

# Создаем столбец 'Страна' на основе словаря, сопоставляющего местоположение и страну
df['Страна'] = df['Местоположение'].map({'Торонто': 'Канада', 'Нью-Йорк': 'США', 'Лос-Анджелес': 'США', 'Ванкувер': 'Канада', 'Сиэтл': 'США'})

print(df)

# Возвращает:
#        Имя  Местоположение   Сумма  Страна
# 0     Джейн         Торонто   99.99  Канада
# 1     Митч        Нью-Йорк  123.12     США
# 2     Алекс    Лос-Анджелес  150.23     США
# 3      Иван        Ванкувер   52.34  Канада
# 4  Мелисса           Сиэтл   12.34     США

В приведенном выше блоке кода мы использовали метод map() для сопоставления со словарем значений. Мы применили метод напрямую к другому столбцу, где словарь ищет ключ и возвращает соответствующее значение.

В следующем разделе вы узнаете, как добавить несколько столбцов в DataFrame Pandas.

Как добавить несколько столбцов в фрейм данных Pandas

Часто возникает необходимость добавить в DataFrame Pandas несколько столбцов. Любой из вышеупомянутых методов будет работать. Например, вы можете назначить два столбца, передав два списка данных.

Давайте посмотрим, как мы можем использовать список списков для создания двух колонок в Pandas:

# Создаем два столбца с помощью Pandas
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

df['Пример'], df['Пример2'] = [[1,2,3,4,5], [6,7,8,9,0]]

print(df)

# Возвращает:
#        Имя  Местоположение   Сумма  Пример  Пример2
# 0     Джейн         Торонто   99.99       1        6
# 1     Митч        Нью-Йорк  123.12       2        7
# 2     Алекс    Лос-Анджелес  150.23       3        8
# 3      Иван        Ванкувер   52.34       4        9
# 4  Мелисса           Сиэтл   12.34       5        0

Давайте разберем, что мы сделали выше:

  1. Мы назначили две колонки, df['Образец'] и df['Sample2']

  2. Мы передали список списков, каждый из которых содержит пять значений

Как добавить новый столбец, производный от другого столбца кадра данных Pandas

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

# Вычисляем новый столбец в Pandas
import pandas as pd

df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Сумма': [99.99, 123.12, 150.23, 52.34, 12.34]})

df['С налогом'] = df['Сумма'] * 1.13

print(df)

# Возвращает:
#        Имя  Местоположение   Сумма  С налогом
# 0     Джейн         Торонто   99.99   112.9887
# 1     Митч        Нью-Йорк  123.12   139.1256
# 2     Алекс    Лос-Анджелес  150.23   169.7599
# 3      Иван        Ванкувер   52.34    59.1442
# 4  Мелисса           Сиэтл   12.34    13.9442

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

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

Функция merge() в Pandas позволяет имитировать комплексное слияние, включая различные типы объединения. Давайте посмотрим, как добавить новый столбец, объединив два DataFrame:

# Добавляем новый столбец в DataFrame, объединяя два DataFrame
import pandas as pd

# Создаем DataFrame с именем и местоположением
df = pd.DataFrame({
    'Имя': ['Джейн', 'Митч', 'Алекс', 'Иван', 'Мелисса'],
    'Местоположение': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл']})

# Создаем DataFrame с городом и страной
df_locations = pd.DataFrame({
    'Город': ['Торонто', 'Нью-Йорк', 'Лос-Анджелес', 'Ванкувер', 'Сиэтл'],
    'Страна': ['Канада', 'США', 'США', 'Канада', 'США']})

# Объединяем два DataFrame по местоположению и городу
df = pd.merge(
    left=df,
    right=df_locations,
    left_on='Местоположение',
    right_on='Город',
    how='left'
).drop(columns='Город')

print(df)

# Возвращает:
#        Имя  Местоположение  Страна
# 0     Джейн         Торонто  Канада
# 1     Митч        Нью-Йорк     США
# 2     Алекс    Лос-Анджелес     США
# 3      Иван        Ванкувер  Канада
# 4  Мелисса           Сиэтл     США

Давайте разберем, что мы сделали в приведенном выше коде:

  1. Мы загрузили два DataFrame, один из которых мы объединим с другим.

  2. Мы затем использовали функцию merge() из библиотеки Pandas

  3. В заключение, мы использовали метод .drop(), чтобы удалить дублирующийся столбец.

Заключение

В этом уроке вы научились использовать Pandas для добавления нового столбца в DataFrame. Сначала вы узнали, как присвоить константное значение напрямую. Затем вы научились добавлять различные значения на основе списка или из словаря. Затем вы изучили, как добавить несколько столбцов в DataFrame Pandas одновременно. После этого вы научились добавлять столбцы, производные от другого столбца. Наконец, вы узнали, как объединить два DataFrame для добавления столбца в DataFrame.

Дополнительные ресурсы

Чтобы узнать больше о смежных темах, ознакомьтесь с ниже приведенными учебными материалами:

  • Преобразование списка словарей в фрейм данных Pandas

  • Как добавить/вставить строку в фрейм данных Pandas

  • Pandas: как удалить столбец индекса Dataframe

  • Pandas Sum: добавьте столбцы и строки Dataframe

Last updated