开发手册 欢迎您!
软件开发者资料库

Python pandas.DataFrame.dot函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.dot方法的使用。

DataFrame.dot(self, other)

计算DataFrame与其他之间的矩阵乘法。
此方法计算DataFrame与其他Series,DataFrame或numpy数组的值之间的矩阵乘积。
它也可以在Python> = 3.5中使用。self @ other

参数

other : SeriesDataFrame或类似数组

用于计算矩阵乘积的另一个对象。

返回

SeriesDataFrame

如果其他是Series,则将自我和其他的矩阵产品作为Serie返回。

如果other是DataFramenumpy.array

则在np.arrayDataFrame中返回selfother的矩阵乘积。

Note

DataFrame和其他的维度必须兼容才能计算矩阵乘法。此外,DataFrame的列名称和其他索引必须包含相同的值,因为它们将在乘法之前对齐。Series的dot方法计算内积,而不是此处的矩阵乘积。

例子

在这里,我们将DataFrame与Series相乘

>>> df = pd.DataFrame([[0, 1, -2, -1], [1, 1, 1, 1]])
>>> s = pd.Series([1, 1, 2, 1])
>>> df.dot(s)
0 -4
1 5
dtype: int64

在这里,我们将DataFrame与另一个DataFrame相乘

>>> other = pd.DataFrame([[0, 1], [1, 2], [-1, -1], [2, 0]])
>>> df.dot(other)
0 1
0 1 4
1 2 2

请注意,dot方法给出与@相同的结果

>>> df @ other
0 1
0 1 4
1 2 2

如果其他是np.array,则dot方法也适用

>>> arr = np.array([[0, 1], [1, 2], [-1, -1], [2, 0]])
>>> df.dot(arr)
0 1
0 1 4
1 2 2

请注意对象的混乱如何不会改变结果

>>> s2 = s.reindex([1, 0, 2, 3])
>>> df.dot(s2)
0 -4
1 5
dtype: int64