Я пытаюсь сделать базовый анализ данных, которые у меня есть в CSV. Данные имеют временную метку, по отношению к которой есть значение для «Test A» и «Test B». [образец данных файла csv]
У меня есть средние значения для теста А и Б, а также разница между результатами теста. Но мне действительно нужно вычислить значение r ^ 2, чтобы увидеть, как соотносятся два теста. Я знаю действительно простой способ сделать это в Excel, но у меня есть много данных, поэтому их нужно кодировать для лучшего. Раздел кода, который я должен вычислить, г ^ 2 возвращает ошибку
TypeError: неподдерживаемые типы операндов для ** или pow (): 'LinregressResult' и 'int'
Интересно, возможно ли это потому, что я делаю это для данных столбцов в формате float64? [сообщение об ошибке]
В идеале я также ищу способ анализа только разделов данных - я хочу анализировать данные за каждый час (45 точек данных в час). У кого-нибудь есть способ включить только определенный раздел строк?
Большое спасибо !!
import pandas as pd
from scipy import stats
# Read the file in csv
data_input = pd.read_csv("StackOF_r2.csv", low_memory=False)
#Output the number of rows
print("Total rows: {0}".format(len(data_input)))
# See which headers are available
print(list(data_input))
# Get the data from the data columns
data_A = data_input['Test A']
data_B = data_input['Test B']
# Average the data for Test A
Test_A = data_input['Test A'].mean()
print 'Test A Average: ', round(Test_A, 4)
# Average the data for Test B
Test_B = data_input['Test B'].mean()
print 'Test B Average: ', round(Test_B, 4)
# Calculate difference to between tests
Error = Test_A - Test_B
print 'Error (difference between averages): ', round(abs(Error), 4)
# Work out the r2 value between the two tests
r_value = stats.linregress(data_A, data_B)
print "r_value: ", r_value
print "R-squared: ", r_value**2
print data_input['Test A'].dtypes