0
votes

Python - TypeError: Les indices de tuple doivent être des entiers ou des tranches, pas Numpy.float64

Obtenir cette erreur pour quelque chose qui semble simple. L'aide serait appréciée.

finaltbl est un pandas df avec col1prelim, col2prelim et col3prelim, qui ont des valeurs comprises entre 0 et 1 au format float. P>

for k, v in coldict.items():
    finaltbl.at[0, k] = 1
    finaltbl.at[1, k] = (finaltbl.loc[0, v] + finaltbl.loc[1, v])/2


0 commentaires

3 Réponses :


1
votes

Lorsque vous effectuez numpy.Mean () sur ces valeurs, le résultat est stocké dans le type Numpy Numpy.Fly.Fly Numpy, qui ne peut pas être utilisé comme indexeur. Vous devez lancer votre variable et entier.

Pour les valeurs scalaires, INT () est une bonne-quelle est votre cas. Pour Float64 Ndarrays, vous devez utiliser la méthode de Numpy's ASTYPE ().


1 commentaires

Il n'y a rien qu'il a besoin de voter comme entier. Il a plutôt besoin de transmettre les arguments corrects à np.mean .



1
votes

Faire un petit Dataframe: xxx pré>

Essayez d'utiliser moyenne code> comme vous le faites, affichant la traçabilité complète: p>

In [22]: np.mean([df.loc[0,1],df.loc[1,1]])                                               
Out[22]: 2.5


0 commentaires

1
votes

@hpaulj: TL; DR

NP.MEAN ne nécessite généralement qu'un argument. L'erreur causée par la saisie xxx

sera éliminée si vous mettez les 2 arguments dans un seul tableau en utilisant des crochets xxx


0 commentaires