📌  相关文章
📜  根据现有列在 Pandas DataFrame 中创建一个新列

📅  最后修改于: 2022-05-13 01:54:50.320000             🧑  作者: Mango

根据现有列在 Pandas DataFrame 中创建一个新列

在 Pandas 中处理数据时,我们对数据执行大量操作以获取所需形式的数据。这些操作之一可能是我们希望根据对 DataFrame 中现有列的某些操作的结果在 DataFrame 中创建新列。让我们讨论几种可以做到这一点的方法。

给定一个包含事件数据的 Dataframe,我们想创建一个名为'Discounted_Price'的新列,该列是在对门票价格应用 10% 的折扣后计算的。

解决方案#1:我们可以使用DataFrame.apply()函数来完成这个任务。

# 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)

输出 :

现在,在对现有的“成本”列应用 10% 的折扣后,我们将创建一个名为“Discounted_Price”的新列。

# 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)

输出 :

解决方案#2:我们可以通过直接在所需的列元素上执行所需的操作来获得相同的结果。

# 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)

输出 :