我有一個數(shù)據(jù)框和一個系列,數(shù)據(jù)框是關(guān)于每個受訪者成本的基礎(chǔ)數(shù)據(jù),系列是應(yīng)該乘以基礎(chǔ)數(shù)據(jù)的貼現(xiàn)率。例如,基礎(chǔ)數(shù)據(jù)是(數(shù)據(jù)框): cost1 cost2John 100 50Tom 50 100Andy 50 200Mark 80 300和折扣數(shù)據(jù)是(系列):John 0.7Tom 0.6Andy 0.9Mark 0.5因此,所需的輸出是: cost1 cost2John 70 35Tom 30 60Andy 45 180Mark 40 150我想出的方法是:customer_list = base.index.tolist()for k in customer_list: base.loc[k] = base.loc[k]*discount.loc[k]這有效(給了我所需的輸出),但我覺得它效率很低。在我的實際應(yīng)用中,dataframe 非常大,所以運行這樣的迭代需要相當(dāng)長的時間。對有效計算有什么建議嗎?我認(rèn)為可能有一些有效的方法可以使用索引來進(jìn)行整體計算。(基礎(chǔ)*折扣當(dāng)然沒有用...)
1 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗 獲得超8個贊
使用mul帶有axisPARAM:
df.mul(df2, axis=0)
cost1 cost2
John 70.0 35.0
Tom 30.0 60.0
Andy 45.0 180.0
Mark 40.0 150.0
添加回答
舉報
0/150
提交
取消