[英]how to efficiently multiply certain value for each row in python dataframe
我有一個數據框和一個系列,數據框是關於每個受訪者成本的基礎數據,系列是應該乘以基礎數據的貼現率。
例如,基礎數據是(數據框):
cost1 cost2
John 100 50
Tom 50 100
Andy 50 200
Mark 80 300
和折扣數據是(系列):
John 0.7
Tom 0.6
Andy 0.9
Mark 0.5
因此,所需的輸出是:
cost1 cost2
John 70 35
Tom 30 60
Andy 45 180
Mark 40 150
我想出的方法是:
customer_list = base.index.tolist()
for k in customer_list:
base.loc[k] = base.loc[k]*discount.loc[k]
這有效(給了我所需的輸出),但我覺得它效率很低。 在我的實際應用中,dataframe 非常大,所以運行這樣的迭代需要相當長的時間。
對有效計算有什么建議嗎? 我認為可能有一些有效的方法可以使用索引來進行整體計算。 (基礎*折扣當然沒有用...)
先感謝您!
將mul
與axis
參數一起使用:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.