Function = sqrt( AB x BA )
A B C D
A 1 2 3 4
B 1 2 3 4
C 1 2 3 4
D 1 2 3 4
AB = 2
BA = 1
sqrt(2 x 1)
将其应用于dataframe中的所有单元格
答案 0 :(得分:1)
如果您正在寻找一个函数来从给定的行和列中获取sqrt,您可以使用
def sqrt(a,b):
return math.sqrt(df.loc[a[0],a[1]]*df.loc[b[0],b[1]])
sqrt('AB','BC')
2.449489742783178
答案 1 :(得分:0)
您可以使用applymap
:
In [11]: df.applymap(np.sqrt)
Out[11]:
A B C D
A 1.0 1.414214 1.732051 2.0
B 1.0 1.414214 1.732051 2.0
C 1.0 1.414214 1.732051 2.0
D 1.0 1.414214 1.732051 2.0
答案 2 :(得分:0)
对于这样的给定输入:
l = pd.DataFrame([[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]])
你可以这样做:
for i,v in l.iterrows():
for j in range(len(v)):
l[i][j] = math.sqrt(l[i][j]*l[j][i])
在pandas中更好的方法是:
for i in l.columns.values:
for j in l.index:
l.loc[i, j] = math.sqrt(l.loc[i, j]*l.loc[j, i])
输出:
>>> l
0 1 2 3
0 1.000000 1.414214 1.732051 2.000000
1 1.189207 2.000000 2.449490 2.828427
2 1.316074 2.213364 3.000000 3.464102
3 1.414214 2.378414 3.223710 4.000000