首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Python Pandas dataframe的乘法

使用Python Pandas dataframe的乘法
EN

Stack Overflow用户
提问于 2017-02-11 23:53:39
回答 1查看 985关注 0票数 3

这可能是个愚蠢的问题,但我试图将两个数据序列相乘,一个是100x2形状( 100行和2列),另一个是2x1形状。第一个dataframe是(只打印头部,有100行和2列,即X0和X1):-

代码语言:javascript
代码运行次数:0
运行
复制
    X0     X1
0   1      6.1101
1   1      5.5277
2   1      8.5186
3   1      7.0032
4   1      5.8598 

另一个数据帧是参数向量&我称它为Theta,包含2列0和1。

代码语言:javascript
代码运行次数:0
运行
复制
Theta=pd.DataFrame(np.zeros((1, 2)))
print("printing initialized Theta:\n",Theta)

输出is=

代码语言:javascript
代码运行次数:0
运行
复制
  0         1
0  0.0      0.0

如你所见,它的尺寸是1x2。现在,我将这个Theta数据框架转换成:

代码语言:javascript
代码运行次数:0
运行
复制
theta1=theta.transpose()
print("printing theta transponse:\n",theta1)

结果是:-

代码语言:javascript
代码运行次数:0
运行
复制
   0
0  0.0
1  0.0

但是,当我使用Theta1将第一个dataframe相乘时,使用:

代码语言:javascript
代码运行次数:0
运行
复制
predict=X.mul(theta1,axis=1)

我得到的输出是(只打印头部):

代码语言:javascript
代码运行次数:0
运行
复制
   X0          X1   0
0  0.0         0.0  0.0
1  0.0         0.0  0.0
2  0.0         0.0  0.0
3  0.0         0.0  0.0
4  0.0         0.0  0.0 
(100, 3)

正如您所看到的,当我期望它成为100x1时,它现在已经变成了一个100x3数据格式。看起来,数据毕竟不能基于矩阵乘法被乘以。我怎么才能把它弄对?我应该把它转换成numpy.matrix,然后做矩阵乘法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-12 00:01:33

两点失败。

  1. 您想使用dot 而不是 mul
  2. Theta的索引与X不对齐,所以您需要将Theta的列名与X的列名对齐。

试一试这个

代码语言:javascript
代码运行次数:0
运行
复制
Theta.columns = X.columns
X.dot(Theta.T)

     0
0  0.0
1  0.0
2  0.0
3  0.0
4  0.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42182663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档