我正在尝试将pandas数据框的每一行乘以不同的值,并想知道最好的方法是什么。
例如,如果我有以下数据框:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(2, 3))
df
0 1 2
0 -1.283316 0.849488 1.936060
1 -2.078575 -0.871570 -0.970261
我想要用列表或数组中的不同元素来乘以每一行的每个元素:
vals = [1, 100]
。在这个例子中,我希望第一行中的每个项目都乘以1,第二行中的每个项目都乘以100。
因此,结果应该是:
0 1 2
0 -1.283316 0.849488 1.936060
1 -207.8575 -87.1570 -97.0261
我已经尝试了:
df * vals
df.multiply(vals)
df.multiply(vals, axis=1)
这些都不起作用,虽然根据我对该代码应该完成的任务的理解,我并没有期望它们会。我无法找到一种简洁的方式来使用 pandas 完成这个任务。