【问题标题】:how to efficiently multiply certain value for each row in python dataframe如何有效地为python数据框中的每一行乘以某个值
【发布时间】:2019-03-28 07:50:03
【问题描述】:

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

例如基础数据是(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非常大,所以运行这样的迭代需要相当长的时间。

对高效计算有什么建议吗?我认为可能有一些有效的方法可以使用索引进行整体计算。 (虽然基本 * 折扣肯定不起作用...)

提前致谢!

【问题讨论】:

    标签: python pandas dataframe indexing series


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 2021-11-29
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多