Pandas DataFrame DataFrame.assign() 函式

Suraj Joshi 2023年1月30日
  1. pandas.DataFrame.assign() 語法
  2. 示例程式碼: DataFrame.assign() 方法分配一列
  3. 示例程式碼:DataFrame.assign() 方法分配多列
Pandas DataFrame DataFrame.assign() 函式

Python Pandas DataFrame.assign() 函式將新的列分配給 DataFrame

pandas.DataFrame.assign() 語法

DataFrame.assign(**kwargs)

引數

**kwargs 關鍵字引數,要分配給 DataFrame 的列名作為關鍵字引數傳遞

返回值

它返回 DataFrame 物件,並將新的列和現有的列一起分配。

示例程式碼: DataFrame.assign() 方法分配一列

import pandas as pd

df = pd.DataFrame({'Cost Price': 
                   [100, 200], 
                   'Selling Price':
                   [200, 400]})

new_df=df.assign(Profit=df["Selling Price"]-
                        df["Cost Price"])
print(new_df)

呼叫者 DataFrame

   Cost Price  Selling Price
0         100            200
1         200            400

輸出:

   Cost Price  Selling Price  Profit
0         100            200     100
1         200            400     200

它將新的列 Profit 分配給 DataFrame,對應於 Selling PriceCost Price 列之間的差異。

我們也可以通過對可呼叫物件使用 lambda 函式為 df 分配新的列。

import pandas as pd

df = pd.DataFrame({'Cost_Price': 
                   [100, 200], 
                   'Selling_Price': 
                   [200, 400]})

new_df=df.assign(Profit=lambda x: 
                 x.Selling_Price-
                 x.Cost_Price)

print(new_df)

呼叫的物件 DataFrame

   Cost Price  Selling Price
0         100            200
1         200            400

輸出:

   Cost_Price  Selling_Price  Profit
0         100            200     100
1         200            400     200

示例程式碼:DataFrame.assign() 方法分配多列

import pandas as pd

df = pd.DataFrame({'Cost_Price': 
                   [100, 200], 
                   'Selling_Price': 
                   [200, 400]})

new_df=df.assign(Cost_Price_Euro =  
                 df['Cost_Price']*1.11,  
                  Selling_Price_Euro = 
                 df['Selling_Price']*1.11)

print(new_df)

呼叫者 DataFrame

   Cost Price  Selling Price
0         100            200
1         200            400

輸出:

   Cost_Price  Selling_Price  Cost_Price_Euro  Selling_Price_Euro
0         100            200            111.0               222.0
1         200            400            222.0               444.0

它將兩列新的 Cost_Price_EuroSelling_Price_Euro 分配給 df,這兩列分別來自現有的 Cost_PriceSelling_Price

我們也可以使用 lambda 函式將多個列分配給 df,用於呼叫物件。

import pandas as pd

df = pd.DataFrame({'Cost_Price': 
                   [100, 200], 
                   'Selling_Price': 
                   [200, 400]})

new_df=df.assign(Cost_Price_Euro = 
                 lambda x: x.Cost_Price*1.11,  
                 Selling_Price_Euro =
                 lambda x: x.Selling_Price*1.11)

print(new_df)

呼叫的物件 DataFrame 為,

   Cost Price  Selling Price
0         100            200
1         200            400

輸出:

   Cost_Price  Selling_Price  Cost_Price_Euro  Selling_Price_Euro
0         100            200            111.0               222.0
1         200            400            222.0               444.0
作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Pandas DataFrame