Почему я получаю два неподдерживаемых типа opperand при создании корреляционной матрицы в python?

#python #dataframe #numpy #for-loop #dtype

Вопрос:

Я пытаюсь создать корреляционную матрицу из моего фрейма данных со всеми переменными, вот цикл, который я создал:

 ########################################### ###Coefficient de corrélation de Pearson### ###########################################  from scipy.stats import pearsonr  attribute_list = ["model", "year", "price", "transmission", "mileage", "fuelType", "tax", "mpg", "engineSize"]  correlation_coefficient_matrix = np.zeros((len(attribute_list), len(attribute_list))) pvalue_matrix = np.zeros((len(attribute_list), len(attribute_list)))  for i in range(len(attribute_list)):   for j in range(len(attribute_list)):   if i gt;= j:   x = my_data_frame[attribute_list[i]].values  y = my_data_frame[attribute_list[j]].values   r1, pvalue = pearsonr(x, y)   if i == j:   correlation_coefficient_matrix[i, j] = r1  pvalue_matrix[i, j] = pvalue   if i gt; j:   correlation_coefficient_matrix[i, j] = r1  pvalue_matrix[i, j] = pvalue   correlation_coefficient_matrix[j, i] = r1  pvalue_matrix[j, i] = pvalue  print("This is the correlation matrix between variables, the variables are:") print(attribute_list) print("n") print(correlation_coefficient_matrix) print("n") print(pvalue_matrix)  

Вот ошибка, которая появляется:

 Traceback (most recent call last):  File "C:/Users/utilisateur/Desktop/OUTILS DE PROGRAMMATION POUR LA SCIENCE DES DONNÉES/TP1.py", line 127, in lt;modulegt;  r1, value = pearsonr(x, y)  File "C:Usersutilisateuranaconda3libsite-packagesscipystatsstats.py", line 3919, in pearsonr  dtype = type(1.0   x[0]   y[0]) TypeError: unsupported operand type(s) for  : 'float' and 'str'  

Кто-нибудь может мне в этом помочь? Я знаю, что это как-то связано с тем, что типы float и string не преобразуются должным образом, но я заблудился…

Спасибо!

Комментарии:

1. 1.0 это поплавок. x или y должны быть строками, или, поскольку они исходят из dataframe .values, массивы типов объектов dtype, содержащие строки.

2. Я не уверен, что понял ваш ответ, я должен преобразовать свои переменные x и y в строки?

3. Что ты пытаешься сделать? Я думаю x , и y уже содержат строки. для строк-это соединение. для чисел это сложение.