我有 2 個資料幀:
df1 (原始有大約 3000 行 x 200 列:加法和乘法為 190,其余有一些其他資訊):
tag A35 A37 A38
ITEM
B1 SAS 8.0 3.0 1.0
B2 HTW 1.0 3.0 3.0
B3 ASD 0.0 8.0 0.0
B4 KLD 1.0 10.0 0.0
df2 (行中的“價格”與 df1 中的列匹配):
day1 day2
prices
A35 1 3
A37 2 2
A38 3 1
我想df1使用方案在總體 day1_price 和 day2_price 中添加列:
df1.B1-day1_price = df1.B1_A35 * df2.A35_day1
df1.B1_A37 * df2.A37_day1
df1.B1_A38 * df2.A38_day1
所以它應該是 row1 day1: (b1) = 8*1 3*2 1*3= 17
tag A35 A37 A38 day1_price day2_price
ITEM
B1 SAS 8.0 3.0 1.0 17.0 31.0
B2 HTW 1.0 3.0 3.0 16.0 12.0
B3 ASD 0.0 8.0 0.0 16.0 16.0
B4 ASD 1.0 10.0 0.0 21.0 23.0
所以我想添加和乘以匹配價格的列df2。
uj5u.com熱心網友回復:
使用dot的乘法和join到df1:
#set indices if needed
df1 = df1.set_index("ITEM")
df2 = df2.set_index("prices")
output = df1.join(df1.drop("tag", axis=1).dot(df2).add_suffix("_price"))
>>> output
ITEM tag A35 A37 A38 day1_price day2_price
0 B1 SAS 8 3 1 17 31
1 B2 HTW 1 3 3 16 12
2 B3 ASD 0 8 0 16 16
3 B4 KLD 1 10 0 21 23
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371352.html
