将pandas数据帧和系列乘以元素

时间:2016-10-09 21:54:19

标签: python pandas

让我们说我有一个熊猫系列:

z = pd.DataFrame({0: [-1,2,-3], 1: [-4,5,-6], 2: [-7,8,-9] })

我想以这样的方式乘以x和y,我得到z:

self.ratingsButton.append(button)

换句话说,如果系列的元素j是-1,那么x的第j行的所有元素都将乘以-1。如果系列的元素k是1,那么x的第j行的所有元素都将乘以1.

我该怎么做?

4 个答案:

答案 0 :(得分:7)

你可以这样做:

>>> new_x = x.mul(y, axis=0)
>>> new_x
   0  1  2
0 -1 -4 -7
1  2  5  8
2 -3 -6 -9

答案 1 :(得分:2)

尽管这个问题很旧,但我要补充一点,如果函数返回一堆毫无意义的NaN,则应乘以所讨论的序列的值,如下所示:

new_x = df.mul(s.values, axis=0)

答案 2 :(得分:1)

正如Abdou指出的那样,答案是

z = x.apply(lambda col: col*y)

此外,如果你改为使用DataFrame,例如

 y = pandas.DataFrame({"colname": [1,-1,-1]})

然后你可以做

 z = x.apply(lambda z: z*y["colname"])

答案 3 :(得分:1)

您可以直接乘以数据帧。

x * y