Skip to main content
 首页 » 编程设计

python之Pandas ,如何制作矩阵

2025年05月04日9zhoujg

我有一个关于 Pandas 的问题,如果有人能帮助我,我将不胜感激。

我有一个数据框

df1 = pd.DataFrame( {'Name': ['A', 'B','A','A']}) 
df1 

我想为此做groupby。

x=df1.groupby("Name").size() 
x 

我还有另一个数据框

df2 = pd.DataFrame( {'Name2': ['Jon',Maria','Maria','Mike','Mike','Mike']}) 
df2 

对于这个,我也做 groupby。 y= df2.groupby("Name2").size()

然后我想制作列为 x 行为 y 的矩阵,并希望将这些值相乘。 我想要这样的矩阵。

     Jon  Maria     Mike 
A    3       6         9 
B    1       2         3 

如果您能告诉我该怎么做,我将不胜感激。

请您参考如下方法:

您可以执行点积:

x.to_frame().dot(y.to_frame().T) 
 
Name2  Jon  Maria  Mike 
Name                    
A        3      6     9 
B        1      2     3 

如果要删除轴标签,请使用 rename_axis:

x.to_frame().dot(y.to_frame().T)\ 
      .rename_axis(None).rename_axis(None, 1) 
 
   Jon  Maria  Mike 
A    3      6     9 
B    1      2     3 

或者,就地分配:

v = x.to_frame().dot(y.to_frame().T) 
v.index.name = v.columns.name = None 
 
v 
 
   Jon  Maria  Mike 
A    3      6     9 
B    1      2     3