如何有效地将python数据框中的每一行的特定值相乘

时间:2018-10-24 01:14:01

标签: python pandas dataframe indexing series

我有一个数据框和一个序列,该数据框是每个受访者的成本基础数据,而序列是应乘以基础数据的折现率。

例如,基础数据是(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]

这有效(给了我想要的输出),但是我觉得效率很低。在我的实际应用中,数据帧非常大,因此运行此类迭代需要花费大量时间。

对有效计算有何建议?我认为可能存在一些使用索引进行整体计算的有效方法。 (基数*折扣当然还是行不通的...)

提前谢谢!

1 个答案:

答案 0 :(得分:1)

mulaxis参数一起使用:

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