【发布时间】: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
【问题讨论】:
我有两个数据框:
1号
| word | weight |
|---|---|
| book | 0.2 |
| water | 0.5 |
第二
| description | book | water |
|---|---|---|
| xyz | 1 | 0 |
| abc | 0 | 1 |
我想简单地将每个单词权重与第二个数据框中的值相乘,然后将它们粘贴到第二个数据框中——而不是 1/0
【问题讨论】:
如果将 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
【讨论】: