如何将列的某些值乘以常数?

Sar*_*gan 6 python dataframe python-3.x pandas

我有一个看起来像这样的数据框:

     product     score
0    1179160  0.424654
1    1066490  0.424509
2    1148126  0.422207
3    1069104  0.420455
4    1069105  0.414603
..       ...       ...
491  1160330  0.168784
492  1069098  0.168749
493  1077784  0.168738
494  1193369  0.168703
495  1179741  0.168684
Run Code Online (Sandbox Code Playgroud)

我想要实现的是将与特定产品相对应的某些分数值乘以一个常数。我在这样的列表中有这个乘法的产品目标:[1069104, 1069105](这只是一个简化的例子,实际上它会超过两个产品),我的目标是获得这个:

将产品 1069104 和 1069105 对应的分数乘以 10:

     product     score
0    1179160  0.424654
1    1066490  0.424509
2    1148126  0.422207
3    1069104  4.204550
4    1069105  4.146030
..       ...       ...
491  1160330  0.168784
492  1069098  0.168749
493  1077784  0.168738
494  1193369  0.168703
495  1179741  0.168684
Run Code Online (Sandbox Code Playgroud)

我知道存在 DataFrame.multiply 但检查它适用于完整列的示例,我只是更改这些特定值。

Qua*_*ang 5

您可以使用布尔索引和isin

prod_list =  [1069104, 1069105]
df.loc[df['product'].isin(prod_list), 'score'] *= 10
Run Code Online (Sandbox Code Playgroud)