Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keyerror:使用两列值的平方和的平方根创建dataframe列_Python_Pandas - Fatal编程技术网

Python Keyerror:使用两列值的平方和的平方根创建dataframe列

Python Keyerror:使用两列值的平方和的平方根创建dataframe列,python,pandas,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.

我有一个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')]中没有一个在[列]中。”

与列和总和一起使用:

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
我的原件:


请您澄清一下,您是要精确计算一个值,还是每行计算一个值

如果要计算每行的值并将其添加到新列,则应执行以下操作:

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
使用
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

平方根和?你在哪里做的?我只看到一个
sqrt
是的,您可能会说这两个词,并且您的代码本身与它们相矛盾。您的问题标题和代码实现令人困惑。请解释你希望人们解决什么问题@Sheldore谢谢你的指点。那是打字错误。我已经编辑了问题的标题和摘要部分。希望这是清楚的。@Sheldore-谢谢,答案变了。@jezrael,太好了!谢谢你的意见。我之前在np.sqrt上使用了df。没有这个必要。现在完全可以了,我想计算每一行的值。你正确地回答了我的问题。谢谢!
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