我正在寻找帮助,使用类似sumproduct的函数从现有数据框架创建子数据框。我想使用列标题将此表转换为小额产品:
dan ste bob
t1 0 2 0
t2 2 0 1
t3 2 1 0
t4 1 0 2
t5 0 1 2
列标题成为索引,sum product为值:
dan ste bob
dan 9 2 4
ste 2 6 2
bob 4 2 9
dan x dan = 9(0 * 0)+(2 * 2)+(2 * 2)+(1 * 1)+(0 * 0)
提前致谢!
答案 0 :(得分:2)
您可以使用dot
及其转置:
In [11]: df.T.dot(df)
Out[11]:
dan ste bob
dan 9 2 4
ste 2 6 2
bob 4 2 9
答案 1 :(得分:0)
你应该使用.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