我有一个包含A列和B列的数据框。我想创建第三列,它是两列平方和的平方根。
以下是我的示例数据:
A B
10 7
10 8
9 8
10 11
13 5
3 0
12 8
12 9
11 10
10 11
下面是我尝试过的代码:
df['vib_mot_sqrt'] = df[(np.sqrt(df['X']**2) + (df['index']**2))]
KeyError:“ [Float64Index([6.0,6.0,11.0,15.0,16.0,33.0,42.0,55.0,73.0,87.0],dtype ='float64')中都没有]“
答案 0 :(得分:1)
在两列和总和中使用square root:
df['vib_mot_sqrt'] = df['A']**.5 + df['B']**.5
print (df)
A B vib_mot_sqrt
0 10 7 5.808029
1 10 8 5.990705
2 9 8 5.828427
3 10 11 6.478902
4 13 5 5.841619
5 3 0 1.732051
6 12 8 6.292529
7 12 9 6.464102
8 11 10 6.478902
9 10 11 6.478902
我的原始answer:
df['vib_mot_sqrt'] = np.sqrt(df['A']**2 + (df['B']**2))
print (df)
A B vib_mot_sqrt
0 10 7 12.206556
1 10 8 12.806248
2 9 8 12.041595
3 10 11 14.866069
4 13 5 13.928388
5 3 0 3.000000
6 12 8 14.422205
7 12 9 15.000000
8 11 10 14.866069
9 10 11 14.866069
答案 1 :(得分:0)
能否请您澄清一下,是否要为每行精确计算一个值或一个值?
如果要计算每一行的值并将其添加到新列中,则应这样做:
df['C']= np.sqrt(df['A']**2+df['B']**2)
输出:
A B C
0 4 5 6.403124
1 3 3 4.242641
2 1 1 1.414214
答案 2 :(得分:0)
将np.sqrt(x)
用于平方根,将x**a
用于幂:
df = pd.DataFrame([
[10 , 7],
[10 , 8],
[9 , 8],
[10 , 11],
[13 , 5],
[3 , 0],
[12 , 8],
[12 , 9],
[11 , 10],
[10 ,11],],
columns=["A" , "B"])
df["sqrt(A²+B²)"] = np.sqrt(df["A"]**2 + df["B"]**2)
print(df)
# A B sqrt(A²+B²)
# 0 10 7 12.206556
# 1 10 8 12.806248
# 2 9 8 12.041595
# 3 10 11 14.866069
# 4 13 5 13.928388
# 5 3 0 3.000000
# 6 12 8 14.422205
# 7 12 9 15.000000
# 8 11 10 14.866069
# 9 10 11 14.866069