Pandas 数据帧dot()
方法
原文:https://www.studytonight.com/pandas/pandas-dataframe-dot-method
在本教程中,我们将学习蟒PandasDataFrame.dot()
法。它计算数据帧和其他数据帧之间的矩阵乘法。该方法计算数据帧与另一个Series
、DataFrame
或一个 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()
方法。我们通过将数据帧乘以DataFrame
、Series
、np.array
来求解这个例子,得到了数据帧的矩阵乘法。