J'utilise un module robin_stocks ici pour calculer les historiques des stocks, puis triez-les par date. sortie: p> Stock: F, Date: 2020-06-24T00:00:00Z, Open: 6.060000, Close: 5.950000
Stock: F, Date: 2020-06-25T00:00:00Z, Open: 5.860000, Close: 6.030000
Stock: F, Date: 2020-06-26T00:00:00Z, Open: 6.040000, Close: 5.910000
Stock: F, Date: 2020-06-29T00:00:00Z, Open: 5.910000, Close: 6.010000
Stock: F, Date: 2020-06-30T00:00:00Z, Open: 5.980000, Close: 6.080000
3 Réponses :
close_prices = [float(stock['close_price']) for stock in stock_price] avg = sum(close_prices) / len(close_prices) If you wish to apply rolling mean with custom window sizes and use pandas, you can do it with pandas.DataFrame.rolling.
Um I Obtenir cette erreur: AVG = SUM (Fermer_PRICES) / LEN (FROCHT_PRICES) TYPEERROR: Type (s) de l'opérande non pris en charge pour +: 'int' et 'str'
Sont les valeurs sous fermer_price code> string? Essayez
[Float (Stock ['Fermer_Prix]]) Pour stock dans Stock_Price] Code> à la place.
Vous pouvez simplement calculer la somme de votre diviser la somme par le nombre de stocks: p> pour code> boucle:
close_average = close_sum / len(stock_price)
Je continue à obtenir l'erreur suivante: fermer_sum + = Stock ['Fermer_price'] TypeError: Type (s) d'opérande non pris en charge pour + =: 'int' et 'Str' des idées?
@CameronRosenbaum Vous devez calculer avec des chiffres, pas des cordes. L'erreur vient de votre entrée, il affecte donc toutes les réponses. Il suffit d'appliquer la conversion float () code>, comme suggéré dans une autre réponse . Ma réponse a été mise à jour.
Si vous avez un dictionnaire que le titre indique (au lieu de "Imprimer" affiché dans votre code), vous pouvez le convertir en DataFrame avec:
your_df['SMA'] = your_df['Close'].rolling(window=10,center=False).mean()
C'est génial! Merci
Consultez de mettre vos données dans un
pandas.dataframe code>. Ceci a une fonction
roulant code> sur laquelle vous pouvez calculer la moyenne de roulement.