KeyError:使用两个列值的平方和的平方根创建数据框列

时间:2019-05-14 12:16:35

标签: python pandas

我有一个包含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')中都没有]“

3 个答案:

答案 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