python pandas交叉表sumproduct square matrix

2024-09-29 02:20:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找帮助,从一个现有的数据帧使用一个类似sumproduct的函数创建一个子数据帧。我想使用列标题将此表转换为小计积:

    dan ste bob
t1  0   2   0
t2  2   0   1
t3  2   1   0
t4  1   0   2
t5  0   1   2

列标题变为索引,和积为值:

^{pr2}$

丹x丹=9(0*0)+(2*2)+(2*2)+(1*1)+(0*0)

提前谢谢!在


Tags: 数据函数标题bobt1t3dant2
2条回答

你应该使用.dot这只是为了好玩

df1=pd.DataFrame(index=df.columns,columns=df.columns)
df1.apply(lambda x : [sum(df[x.name]*df[y]) for y in x.index])
Out[65]: 
     dan  ste  bob
dan    9    2    4
ste    2    6    2
bob    4    2    9

您可以使用^{}及其转置:

In [11]: df.T.dot(df)
Out[11]:
     dan  ste  bob
dan    9    2    4
ste    2    6    2
bob    4    2    9

相关问题 更多 >