J'ai un Pandas DataFrame extrait de Estespark Weather pour les dates entre sept. -2009 et oct-2018, et la moyenne de la colonne Vitesse moyenne du vent est de 4,65. Je relève un défi où il y a un contrôle de cohérence où la moyenne de cette colonne devait être de 4,64. Comment puis-je modifier les valeurs de cette colonne pour que la moyenne de cette colonne devienne 4,64 ? Existe-t-il une solution de code pour cela, ou devons-nous le faire manuellement?

0
Mujeebur Rahman 9 nov. 2020 à 18:32

1 réponse

Meilleure réponse

Je vois deux solutions:

    1. Soustrayez 0,01 (4,65 - 4,64) à chaque valeur de cette colonne comme :
df['AvgWS'] -= 0.01
  • 2 Si vous ne voulez pas modifier toutes les lignes : recherchez les lignes que vous pouvez supprimer pour vous donner la moyenne souhaitée (s'il y en a) :
current_mean = 4.65
desired_mean = 4.64
n_rows = len(df['AvgWS'])

df['can_remove'] = df['AvgWS'].map(lambda x: (current_mean*n_rows - x)/(n_rows-1) ==  4.64)

Cela créera une nouvelle colonne booléenne dans votre cadre de données avec True dans les lignes qui, si elles sont supprimées, font que le reste de la moyenne de la colonne = 4,64. S'il y en a plus d'un, vous pouvez les analyser pour choisir celui qui vous semble le moins important, puis supprimer celui-là.

1
motrix 10 nov. 2020 à 19:36