我有一个关于 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
关于python - Pandas ,如何制作矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464482/