【问题标题】:multiply values from two different dataframes将来自两个不同数据帧的值相乘
【发布时间】:2022-11-25 18:53:45
【问题描述】:

我有两个数据框:

1号

word weight
book 0.2
water 0.5

第二

description book water
xyz 1 0
abc 0 1

我想简单地将每个单词权重与第二个数据框中的值相乘,然后将它们粘贴到第二个数据框中——而不是 1/0

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果将 df2 中没有 description 的列名称与列 df1.word 匹配,您可以使用:

    df = df2.set_index('description').mul(df1.set_index('word')['weight']).reset_index()
    print (df)
      description  book  water
    0         xyz   0.2    0.0
    1         abc   0.0    0.5
    

    或者,如果只需要多个匹配的列,请使用:

    m = df2.columns.isin(df1['word'])
    df2.loc[:, m] = df2.loc[:, m].mul(df1.set_index('word')['weight'])
    print (df2)
      description  book  water
    0         xyz   0.2    0.0
    1         abc   0.0    0.5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-17
      • 2019-12-14
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多