Python n x n数据帧到矩阵(.as_矩阵将在未来版本中删除)
我必须将Python n x n数据帧到矩阵(.as_矩阵将在未来版本中删除),python,dataframe,matrix,Python,Dataframe,Matrix,我必须将df2转换成矩阵以进行矩阵乘法 df = pd.DataFrame({'From':['a','b','c','a','d'], 'To':['b', 'c', 'a', 'd', 'e'], 'Rates':[1e-4, 2.3e-2, 1e-2, 100, 70]}) df2 = df.pivot(index="From", columns="To", values="Rates") full_index = df2.index.union(df2.columns) df2 =
df2
转换成矩阵以进行矩阵乘法
df = pd.DataFrame({'From':['a','b','c','a','d'], 'To':['b', 'c', 'a', 'd', 'e'], 'Rates':[1e-4, 2.3e-2, 1e-2, 100, 70]})
df2 = df.pivot(index="From", columns="To", values="Rates")
full_index = df2.index.union(df2.columns)
df2 = df2.reindex(labels=full_index, axis=0).reindex(labels=full_index, axis=1).fillna(0.0)
df2
Out[21]:
a b c d e
a 0.00 0.0001 0.000 100.0 0.0
b 0.00 0.0000 0.023 0.0 0.0
c 0.01 0.0000 0.000 0.0 0.0
d 0.00 0.0000 0.000 0.0 70.0
e 0.00 0.0000 0.000 0.0 0.0
有没有另一种方法可以将一个nxn数据帧转换成一个矩阵,在将来也可以使用?
df2.to_numpy()
是一样的吗?不要在上面加太细的一点,而是从警告中说:“……使用.values。”看起来很清楚。开枪吧,你是对的。我尝试了.values()而不是.values。谢谢。您可以通过df_LHS.dot(df_RHS)
在pandas中进行矩阵乘法。
df2.as_matrix()
__main__:1: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.
Out[22]:
array([[0.0e+00, 1.0e-04, 0.0e+00, 1.0e+02, 0.0e+00],
[0.0e+00, 0.0e+00, 2.3e-02, 0.0e+00, 0.0e+00],
[1.0e-02, 0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00],
[0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00, 7.0e+01],
[0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00, 0.0e+00]])