Techniques Python détaillées requises pour la mise en forme des données (1)

Façonner les données pour l'analyse

En réalité, l'attention et l'intérêt des gens pour la préparation, le calcul et la visualisation des données sont d'environ 1: 4: 5, alors que le rapport en pratique est d'environ 6: 2: 2. C'est juste une sensation, mais est-il sûr de dire que la plupart de l'analyse est une préparation pour mettre les données dans un état calculable? C'est pourquoi aujourd'hui j'écrirai une série de techniques que j'utilise souvent en Python, qui met l'accent sur la convivialité en tant que langage glu.

Chargement et déchargement d'objets JSON

Il n'y a rien de nouveau sur le contenu, mais la conversion du format JSON est un prétraitement courant. Je vais le laisser comme mémo pour ne pas l'oublier.

En Python, les structures de données au format JSON peuvent être gérées par import json. Une fois chargé, il devient un format de données de dictionnaire (hachage dans d'autres langues), qui peut également être au format JSON.

Chargement de données JSON à partir d'un fichier CSV

Supposons un fichier CSV séparé par clé et valeur. Supposons que la partie valeur contienne des données texte au format JSON sérialisées par un autre système. Pour le charger, vous pouvez fractionner la chaîne en spécifiant un délimiteur comme suit et charger JSON en tant qu'objet de type dictionnaire avec la méthode json.load.

import json

file = open(self.filename, 'r')
for line in file:
    key, value = line.rstrip().split(",")
    dic = json.loads(value)

Ecrire un objet JSON dans un fichier

D'autre part, lors de l'écriture d'un objet de type dictionnaire dans un fichier ou une sortie standard au format JSON, utilisez json.dumps comme suit.

import json

json_obj = json.dumps(dic)
print(json_obj)

C'est facile.

Utilisation d'arguments et de variables d'instance

Les arguments passés au script Python sont stockés dans sys.argv.

import sys

if __name__ == '__main__':
    argsmin = 1
    if len(sys.argv) > argsmin:
        some_instance = SomeClass(sys.argv)
        some_instance.some_method()

Si vous le transmettez lors de l'initialisation de l'instance, vous pouvez l'utiliser en stockant l'argument dans la variable d'instance.

class SomeClass:
    def __init__(self, args):
        self.filename = args[1]

Méthode privée

Python suppose généralement qu'une méthode est une méthode privée en la préfixant avec un _.

    def self._some_method(self):
        ...

Cela ne peut certainement pas être appelé comme some_instance.some_method. Mais vous pouvez en fait l'appeler explicitement avec some_instance._some_method. C'est habituel et pas fonctionnellement privé.

Utilisez deux __ pour l'empêcher d'être appelé de manière fonctionnelle.

    def self.__some_method(self):
        ...

Cependant, même avec cela, il existe une manière délicate de l'appeler, et la testabilité de la méthode privée sera réduite, donc je ne la recommande pas beaucoup. Le fait que vous puissiez appeler une méthode privée est, en d'autres termes, plus facile lors des tests.

Cadre de test

Il existe de nombreux frameworks de test différents pour Python, mais nose est relativement facile à utiliser. Tout d'abord, considérons une méthode qui se comporte comme suit.

import factorial
factorial.factorial(10)
#=> 3628800

Code à tester

Disons que ce code Python s'appelle factorial.py et que l'implémentation de la méthode ressemble à ceci.

def factorial(n):
    if n==1:
        return 1
    else:
        return n * factorial(n-1)

Code de test

Pour tester cela, créez un fichier nommé test_factorial.py et écrivez le code de test comme suit:

from nose.tools import * #Chargement du framework de test
from factorial import *  #Chargement du code en cours de test

def test_factorial(): #Tester la méthode factorielle
    i=10
    e=3628800
    eq_(e,factorial(i)) #Vérification

Ce qui précède équivaut à faire eq_ (3628800, factorial (10)). La méthode eq_ vérifie que les valeurs sont égales.

Lancer le test

Après avoir implémenté le code de test, exécutez la commande nosetests à partir du shell.

$ nosetests
.
----------------------------------------------------------------------
Ran 1 test in 0.008s

OK

Résumé

Il est facile de passer beaucoup de temps à préparer des données stables. Cette fois, j'ai résumé les techniques souvent utilisées dans de tels travaux sous la forme d'un mémorandum.

Recommended Posts

Techniques Python détaillées requises pour la mise en forme des données (1)
Techniques Python détaillées requises pour la mise en forme des données (2)
Cours Python pour la science des données - techniques utiles
Python pour l'analyse des données Chapitre 4
Techniques de tri en Python
Python pour l'analyse des données Chapitre 2
Python pour l'analyse des données Chapitre 3
Modèle de prétraitement pour l'analyse des données (Python)
Formatage des données pour les graphiques Python / couleur
Outil de visualisation Python pour le travail d'analyse de données
Résumé des techniques utiles de Scrapy en Python
Comment utiliser "deque" pour les données Python
[Programmation de compétition] [Python3] Connaissances nécessaires, pour vous-même
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
python [pour moi]
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: chargement des données
Analyse de données python
Mémo n ° 3 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 1 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Afficher la bougie de données FX (forex) en Python
Mémo n ° 2 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 7 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 6 pour les débutants Python à lire "Explication détaillée de la grammaire Python"
Mémo n ° 5 que les débutants Python lisent "Explication détaillée de la grammaire Python"
[python] Lecture de données
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Créez votre propre Big Data en Python pour validation
Réduction dimensionnelle des données haute dimension et méthode de traçage bidimensionnel
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
Connaissances et méthodes d'étude requises pour les futurs analystes de données
[Python] Mesure et affiche le temps nécessaire au traitement
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: modèle SIR-F
Exercice Python pour les débutants # 1 [Types de données de base / instructions If]
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: analyse des tendances S-R
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: modèle SIR
[CovsirPhy] Package Python COVID-19 pour l'analyse des données: estimation des paramètres
Analyse de données avec python 2
Bases de Python ② pour déclaration
Présentation de l'analyse de données python
À propos de Python, pour ~ (plage)
Techniques de test de code?
Nettoyage des données à l'aide de Python
Manuel python pour les débutants
Toolchain pour Python pour Android
Modèle d'analyse de données Python
[Tutoriel Python] Structure des données
[Python] Tri des données Numpy
Analyse de données avec Python
OpenCV pour les débutants en Python
Installez Python (pour Windows)
[Python] pour une erreur d'instruction
Maintenance de l'environnement Python pour les projets
[CovsirPhy] Package Python COVID-19 pour l'analyse de données: analyse de scénario (comparaison de paramètres)
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Lequel dois-je étudier, R ou Python, pour l'analyse des données?
Technique élégante pour coller des données CSV dans Excel avec Python
Code Python pour l'écriture de données CSV dans le stockage d'objets DSX