1

我有两个熊猫系列 a 和 b 如下:

a = pd.series([1, 2, 3])

b = pd.series([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

我想要的是第三个熊猫系列如下:

[[1, 2, 3], [8, 10, 12], [21, 24, 27]]

我尝试了以下操作:

a*b

np.array(a)*np.array(b)

np.multiple(a, b)

a.multiple(b)

但是,我不断收到以下相同的错误:

TypeError: can't multiply sequence by non-int of type 'float'

我想知道这样做的正确方法是什么?谢谢!

4

1 回答 1

1

使用numpy 广播文档

c = np.array(b.values.tolist()) * a[:,np.newaxis])
[[ 1  2  3]
 [ 8 10 12]
 [21 24 27]]

或者:

c = np.array(b.values.tolist()) * a.values.reshape(len(a),-1)
print (c)
[[ 1  2  3]
 [ 8 10 12]
 [21 24 27]]

进而:

s3 = pd.Series(c.tolist())
print (s3)
0       [1, 2, 3]
1     [8, 10, 12]
2    [21, 24, 27]
dtype: object
于 2017-11-10T06:55:46.977 回答