2016-04-29 17 views
0

私はPythonには全く新しく、このようなことに苦労しています。私は前述のエラーメッセージを14行目以降に引き続き取得しています(以下のコードではp =で始まります)。どんな助けでも大歓迎です。ありがとうございました!TypeError:**またはpow()のサポートされていないオペランドタイプ: 'str'と 'int'

file = open('random.txt','r') 
lines = file.readlines() 
file.close() 

import pandas 

colnames = ['x', 'y', 'e'] 
data = pandas.read_sv('random.txt', names=colnames) 

x = data.x.tolist() 
y = data.x.tolist() 
e = data.x.tolist() 

p = [sum(1/int(a**2) for a in e)] 
q = [sum(b/int(a**2) for b, a in zip(x, e))] 
r = [sum(c/int(a**2) for c, a in zip(y, e))] 
s = [sum(b**2/int(a**2) for b, a in zip(x, e))] 
t = [sum(b*c/int(a**2) for c, b, a in zip(y, x, e))] 
delta = p*s - q**2 

a = (r*s - q*t)/delta 
b = (p*t - q*r)/delta 

import math 
Ua = math.sqrt(s/delta) 
Ub = math.sqrt(p/delta) 

print('a', 'b', 'Ua', 'Ub') 
+0

'e'は文字列なので、' a'もそうです。あなたは 'a'を力に上げようとしますが、それは文字列なので意味がありません。あなたのコードは今はあまり意味がないので、あなたがしたいことを説明する必要があるでしょう。 – Carcigenicate

答えて

0

data.x.tolist()は文字列のリストを返します。あなたは、数学的な操作を行う前にfloatまたはintに各項目をキャストする必要があります。

x = [float(a) for a in data.x.tolist()] 
y = [float(a) for a in data.x.tolist()] 
e = [float(a) for a in data.x.tolist()] 

はそれがお役に立てば幸いです。

関連する問題