【问题标题】:How to multiple all rows of a Pandas dataframe by a single row in another Pandas dataframe?如何将 Pandas 数据帧的所有行与另一个 Pandas 数据帧中的单行相乘?
【发布时间】:2020-06-24 21:59:52
【问题描述】:

我在 python 中有这个数据框

我想将第一个数据帧中的每一行与下面数据帧中的这一行相乘作为向量

我在谷歌上尝试过的一些事情:df.mul、df.apply。但它似乎将两个帧正常相乘而不是矢量化操作

【问题讨论】:

  • 试试df1 * df2.to_numpy() ..?
  • 哈哈,没想到这么简单,谢谢!

标签: python pandas numpy dataframe


【解决方案1】:

示例数据:

df = pd.DataFrame({'x':[1,2,3], 'y':[1,2,3]})
v1 = pd.DataFrame({'x':[2], 'y':[3]})

将 DataFrame 与行相乘:

df.multiply(np.array(v1), axis='columns')

【讨论】:

    【解决方案2】:

    如果用例需要精确匹配列

    例子:

    df = pd.DataFrame([[1, 2], [3, 4]], columns=['x', 'y'])
    coeffs_df = pd.DataFrame([[10, 9]], columns=['y', 'x'])
    

    需要先将单行(coeffs_df)的df转为系列,执行multiply

    df.multiply(coeffs_df.iloc[0], axis='columns')
    

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      相关资源
      最近更新 更多