Создайте новый столбец в Pandas DataFrame на основе существующих столбцов

Опубликовано: 28 Марта, 2022

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

Учитывая Dataframe, содержащий данные о событии, мы хотели бы создать новый столбец под названием «Discounted_Price» , который рассчитывается после применения скидки в размере 10% от цены билета.

Solution #1: We can use DataFrame.apply() function to achieve this task.

# importing pandas as pd
import pandas as pd
  
# Creating the DataFrame
df = pd.DataFrame({"Date":["10/2/2011", "11/2/2011", "12/2/2011", "13/2/2011"],
                    "Event":["Music", "Poetry", "Theatre", "Comedy"],
                    "Cost":[10000, 5000, 15000, 2000]})
  
# Print the dataframe
print(df)

Выход :

Теперь мы создадим новый столбец с названием «Discounted_Price» после применения 10% скидки к существующему столбцу «Стоимость».

# using apply function to create a new column
df["Discounted_Price"] = df.apply(lambda row: row.Cost - 
                                  (row.Cost * 0.1), axis = 1)
  
# Print the DataFrame after addition
# of new column
print(df)

Выход :

Solution #2: We can achieve the same result by directly performing the required operation on the desired column element-wise.

# importing pandas as pd
import pandas as pd
  
# Creating the DataFrame
df = pd.DataFrame({"Date":["10/2/2011", "11/2/2011", "12/2/2011", "13/2/2011"],
                    "Event":["Music", "Poetry", "Theatre", "Comedy"],
                    "Cost":[10000, 5000, 15000, 2000]})
  
# Create a new column "Discounted_Price" after applying
# 10% discount on the existing "Cost" column.
  
# create a new column
df["Discounted_Price"] = df["Cost"] - (0.1 * df["Cost"])
  
# Print the DataFrame after 
# addition of new column
print(df)

Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.