0
votes

Erreur Python: TypeError: type (s) d'opérande non pris en charge pour -: 'int' et 'fonction'

Je travaille sur une mission. Je continue à obtenir TypeError: type (s) d'opérande non pris en charge pour -: "INT" et "fonction" même après la recherche de l'erreur et l'application des correctifs suggérés. Je ne cherche personne à me remettre une solution, mais j'apprécierais un deuxième regard. Je manque quelque chose mais je ne sais pas quoi. C'est la section du code que j'ai des problèmes avec: xxx

et le code de réponse reçu est le suivant: xxx

si vous avez aperçu de cela, il serait grandement apprécié!


3 commentaires

Si je comprends bien (veuillez fournir un exemple de reproductible minimal ): vous voyez, df ['Fermer' ] .iloc [-Test_size:]. Valeurs est une fonction elle-même et, pour obtenir les valeurs, vous devez l'appeler: ACCURACIES = [CALCULER_ACCURY (DF ['Fermer']. ILOC [-Test_size:]. valeurs (), r) pour r dans les résultats]


@ Богдан опир, normalement pour un fichier de données est correct, produisant une matrice. C'est ce que je pense que le code est censé faire. valeurs () est une méthode dict . Mais un objet dict.values ​​() ne fonctionnerait pas dans Calculate_accurat .


@HPaulj Merci d'avoir clarifié, cela fait-il que toutes les réponses ne pertinent-elles dans ce cas?


3 Réponses :


0
votes

Les valeurs sont le nom de la fonction, si vous souhaitez obtenir la valeur des valeurs, appelez-la par des valeurs ().

doit remplacer p>

calculate_accuracy(df['Close'].iloc[-test_size:].values()


3 commentaires

Bien que ce code puisse résoudre la question, y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre poster et aboutit probablement à plus de votes ultérieurs. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse Pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.


@ Богдан опир, je n'ai pas acheté cette raison "Répondre pour l'avenir". Parfois, une question a une valeur durable, mais je ne pense pas que ce soit un de ceux-ci. Une réponse utile pour l'OP actuel est utile pour une autre affiche avec le même problème.


Le problème ici est beaucoup moins spécifique que la pensée OP. Donc, la réponse elle-même devrait également être beaucoup moins spécifique. Si cette question est "non partie de celles-ci", elle devrait être éditée de sorte qu'elle soit ou fermée.



0
votes

Voici la partie du code qui a provoqué l'erreur: xxx pré>

à la fin de la ligne, vous voyez .value code>. valeur code> est une fonction qui renvoie une matrice de toutes les valeurs de Le dictionnaire spécifié,
et juste comme toute autre fonction, vous avez besoin () code> pour l'appeler, sinon vous ne le ferez que référencer. p>

si vous Imprimer (Calculez_accurat (DF [«Fermer»]. ILOC [-Test_size:]. Valeurs) CODE>, P>

calculate_accuracy(df['Close'].iloc[-test_size:].values()


1 commentaires

valeurs () n'est pas correct d'utilisation pour un pandas Dataframe.



0
votes

Tout le monde se concentre sur les valeurs . Mais valeurs est une utilisation valide pour un dataframe . valeurs () est l'utilisation du dictionnaire.

regarde plus attentivement à la trace: xxx

Le problème est avec prédire , le 2e argument à Calculez_accurat , l'élément r de résultats . Le premier argument réel est ok.

qui dit, je ne peux pas imaginer comment np.array (prédit) produirait une fonction .

Qu'est-ce que résultats ? Comment va-t-il produire? L'erreur suggère que c'est une liste de fonctions. Pourquoi?

Vous pouvez également afficher la fonction Calculez_accurace , mais nous en voyons probablement assez dans la trace d'erreur.


0 commentaires