python - Pandas DataFrame 和系列的矩阵乘法

标签 python pandas matrix matrix-multiplication dot-product

我想做一个 pandas 数据框和一个系列的矩阵乘法

df = pandas.DataFrame({'a':[4,1,3], 'b':[5,2,4]},index=[1,2,3])
ser = pandas.Series([0.6,0.4])

df 是,

 a  b
1  4  5
2  1  2
3  3  4

是,

0    0.6
1    0.4

我想要的结果是矩阵乘积,像这样

答案是,

我可以通过使用 numpy 点运算符并重建我的 dataFrame 来做到这一点

c = a.values.dot(b.transpose())
c = pandas.DataFrame(c, index = a.index, columns = ['ans'])
print c


   ans
1  4.4
2  1.4
3  3.4

pandas 中有本地方法可以做到这一点吗?

最佳答案

pandas 隐式对齐序列的索引,使用点函数

In [3]: df = pd.DataFrame({'a' : [4,1,3], 'b' : [5,2,4]},index=[1,2,3])

In [4]: s = pd.Series([0.6,0.4],index=['a','b'])

In [5]: df.dot(s)
Out[5]: 
1    4.4
2    1.4
3    3.4

关于python - Pandas DataFrame 和系列的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438952/

相关文章:

python - 使用pyplot绘制直方图

python - 如何在 pandas 中将一组行洗牌在一起(行具有唯一的 id)

c - C中的矩阵转置

r - 从列表中提取累积的唯一元素

python - 为什么 sklearn 包在终端中运行而不在 jupyter 中运行?

python - 未使用 Django Testserver 固定装置

python - Python 包装函数

python - 根据另一个数据帧中的信息为数据帧中的行子集分配值(在一列中)

python - 如何返回列标题,其中该行包含 Pandas Dataframe 中的最大值

c - 我需要从用户那里获取矩阵的大小