IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Moyennes sur les données d'un fichier csv


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Par défaut Moyennes sur les données d'un fichier csv
    Bonjour,

    J'ai un fichier csv qui contient énormément de données, je cherche a faire des moyennes sur ces données a chaque fois que j'ai 100 données puis enregistrer mes résultats dans un nouveau fichier csv

    Je sais ouvrir et enregistrer un fichier csv, mais je ne voie pas comment faire la moyenne toutes les 100 données
    (Je débute avec Python)
    Je vous remercie

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut,

    Toutes les 100 données, c'est tous les 100 enregistrements, je vois pas où se situe ton problème.
    Ensuite plutôt que de faire tes enregistrements dans un fichier global, je séparerais ça en 2 fichiers, le global, et un autre où tu ajouterais tes enregistrements, une fois le 100ème atteint, tu fais tes moyennes, etc, et tu ajoutes les données de ce fichier au fichier global, et tu vides ton fichier, aussi pour éviter de compter chaque fois, il faudrait enregistrer encore dans un autre fichier un compteur d'enregistrements.

    Après une simple bdd avec sqlite, ce serait sans doute mieux pour faire et gérer ça que des fichiers csv.

    Un exemple rapide fait avec random, de là facile de retranscrire ça pour ton fichier csv, commence déjà par faire un truc fonctionnel, et ensuite l'optimisation viendra à la suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> import statistics
    >>> import random
    >>> liste = []
    >>> moyennes = dict()
    >>> for n in range(1, 1001) :
    ...     liste.append(random.randint(1, 500))
    ...     if not n % 100 :
    ...         moyennes['{}-{}'.format(n-99, n)] = statistics.mean(liste)
    ...         liste.clear()
    ... 
    >>> print(moyennes)
    {'701-800': 266.33, '101-200': 253.58, '301-400': 241.05, '501-600': 236.21, '401-500': 253.19, '1-100': 246.07, '801-900': 260.96, '601-700': 231.1, '901-1000': 255.08, '201-300': 287.68}

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 12
    Par défaut
    Merci pour votre aide,
    j'ai essayé d'adapter votre solution à mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    liste=[]
    moyenne=0
    data = pd.read_csv('/Users/Desktop/data.csv')
    for n in range(1, len(data)):
        liste.append(data)
        list = np.array(data)
        if not n % 100:
            moyenne = np.mean(list)
            print(moyenne)
    Cependant ça me fait une moyenne sur toutes mes données et non sur des groupes de 100 données

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 744
    Par défaut
    Salut,

    Citation Envoyé par jean-pierre123 Voir le message
    Cependant ça me fait une moyenne sur toutes mes données et non sur des groupes de 100 données
    Vous êtes fâché avec les listes?
    Essayez de commencer par la moyenne toutes les 4 données d'une liste comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> liste = [ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4]
    Si vous ne vous en sortez pas, c'est pas la peine de compliquer en allant chercher les données dans un CSV.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2012, 09h29
  2. Réponses: 1
    Dernier message: 09/01/2012, 14h49
  3. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  4. Comment manipuler les données d'un fichier .ods ?
    Par Kicker dans le forum Débuter
    Réponses: 2
    Dernier message: 29/07/2008, 15h00
  5. Sauvegarder les données dans un fichier CSV
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2006, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo