Pandas DataFrame DataFrame.assign() 函式
Suraj Joshi
2023年1月30日
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 Price
和 Cost 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_Euro
和 Selling_Price_Euro
分配給 df
,這兩列分別來自現有的 Cost_Price
和 Selling_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 is a backend software engineer at Matrice.ai.
LinkedIn