Pandas 数据帧dot()方法

原文:https://www.studytonight.com/pandas/pandas-dataframe-dot-method

在本教程中,我们将学习PandasDataFrame.dot() 。它计算数据帧和其他数据帧之间的矩阵乘法。该方法计算数据帧与另一个SeriesDataFrame或一个 numpy array的值之间的矩阵乘积。它返回一个序列或数据帧。

  • 为了计算矩阵乘法,数据帧的尺寸和其他尺寸必须兼容。

  • 此外,数据帧的列名和其他的索引必须包含相同的值,因为它们将在乘法之前对齐。

下图显示了DataFrame.dot()方法的语法。

句法

DataFrame.dot(other)

因素

其他:系列,数据帧或类似数组。另一个用来计算矩阵乘积的对象。

示例 1:Pandas 中的 DataFrame.dot()方法

在下面的示例中,创建了两个数据帧,一个数据帧中的元素与另一个数据帧中的元素相乘。DataFrame.dot()方法通过将所有相乘的值相加来返回数据帧。

#importing pandas as pd
import pandas as pd
#creating DataFrames
df1=pd.DataFrame([[0,1,1, 2],[2,1,1,0]],columns=('A','B','C','D'))
df2=pd.DataFrame([[1, 2], [2, 3],[2, 3],[4,1]],index=('A','B','C','D'))
print(df1)
print(df2)
print(df1.dot(df2))

一旦我们运行该程序,我们将获得以下输出。

A B C D 0 1 1 2 1 2 1 1 0 0 1 A 1 2 B 2 3 C 2 3 D 4 1 0 1 0 12 8 1 6 10

示例 2:Pandas 中的 DataFrame.dot()方法

下面的例子类似于前面的例子。创建两个数据帧,应用DataFrame.dot()方法,得到矩阵乘法数据帧。

#importing pandas as pd
import pandas as pd
#creating DataFrames
df1= pd.DataFrame([[1, 1, 1],[2, 2, 2],[3, 3, 3]])
df2= pd.DataFrame([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
print(df1.dot(df2))

一旦我们运行该程序,我们将获得以下输出。

0 1 2 0 1 1 1 1 2 2 2 2 3 3 3

示例 3:使用带有Series的 DataFrame.dot()方法计算矩阵乘法。

在下面的示例中,创建了一个数据帧和系列,一个数据帧中的元素与系列中的元素相乘。DataFrame.dot()方法通过将所有相乘的值相加来返回数据帧。

#importing pandas as pd
import pandas as pd
#creating DataFrames
df1= pd.DataFrame([[1, 1, 1],[2, 2, 2],[3, 3, 3]],columns=('a','b','c'))
df2=pd.Series([1, 1, 2],index=('a','b','c'))
print(df1)
print(df2)
print(df1.dot(df2))

一旦我们运行该程序,我们将获得以下输出。

a b c 0 1 1 1 1 2 2 2 2 3 3 3 a 1 b 1 c 2 数据类型:int64 0 4 1 8 2 12 数据类型:int64

示例 4:乘以数据帧时的值错误

如果矩阵没有对齐,我们将得到ValueError异常。下面的例子显示了同样的情况。

#importing pandas as pd
import pandas as pd
#creating DataFrames
df1=pd.DataFrame([[0, 1], [1, 2],[2, 0]])
df2=pd.DataFrame([[1, 2], [2, 3],[2, 3]])
print(df1.dot(df2))

一旦我们运行该程序,我们将获得以下输出。

值错误:矩阵未对齐

结论

在本教程中,我们学习了 PythonPandasDataFrame.dot()方法。我们通过将数据帧乘以DataFrameSeriesnp.array来求解这个例子,得到了数据帧的矩阵乘法。