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 但检查它适用于完整列的示例,我只是更改这些特定值。
您可以使用布尔索引和isin:
prod_list = [1069104, 1069105]
df.loc[df['product'].isin(prod_list), 'score'] *= 10
Run Code Online (Sandbox Code Playgroud)