Cet article est partagé par la communauté Huawei Cloud « Un guide complet de l'analyse des données visuelles Python, de l'acquisition de données à la découverte d'informations » par Lemony Hug.
Dans le monde de la science et de l’analyse des données, la visualisation est un outil puissant qui nous aide à comprendre les données, à découvrir des modèles et à en tirer des informations. Python fournit une multitude de bibliothèques et d'outils pour rendre le flux de travail d'analyse visuelle des données efficace et flexible. Cet article présentera le flux de travail d'analyse visuelle des données en Python, de l'acquisition des données à l'affichage visuel final des informations.
1. Acquisition de données
Avant de commencer tout travail d’analyse de données, vous devez d’abord obtenir les données. Python fournit diverses bibliothèques pour traiter les données provenant de différentes sources, telles que des pandas pour traiter des données structurées, des requêtes pour obtenir des données réseau ou l'utilisation de bibliothèques spécialisées pour se connecter à des bases de données. Commençons par un exemple simple, chargeant des données à partir d'un fichier CSV :
importer des pandas en tant que PD # Charger les données à partir du fichier CSV données = pd.read_csv('data.csv') # Afficher les premières lignes de données print(data.head())
2. Nettoyage et prétraitement des données
Une fois les données chargées, l’étape suivante est le nettoyage et le prétraitement des données. Cela inclut la gestion des valeurs manquantes, des valeurs aberrantes, des transformations de données, etc. La visualisation joue également souvent un rôle important à ce stade, en nous aidant à identifier les problèmes dans les données. Par exemple, nous pouvons utiliser matplotlib ou seaborn pour dessiner divers graphiques afin d'examiner la distribution et les relations des données :
importer matplotlib.pyplot en tant que plt importer Seaborn en tant que SNS # Dessiner un histogramme plt.hist (données ['nom_colonne'], bacs = 20) plt.title('Distribution de nom_colonne') plt.xlabel('Valeur') plt.ylabel('Fréquence') plt.show() # Dessinez un nuage de points sns.scatterplot(x='colonne1', y='colonne2', données=données) plt.title('Nuage de points de la colonne1 par rapport à la colonne2') plt.show()
3. Analyse et modélisation des données
Après le nettoyage et le prétraitement des données, nous effectuons généralement l’analyse et la modélisation des données. Cela peut impliquer des techniques telles que l’analyse statistique et l’apprentissage automatique. À ce stade, la visualisation peut nous aider à mieux comprendre les relations entre les données et à évaluer les performances du modèle. Par exemple, utiliser Seaborn pour dessiner une matrice de corrélation peut nous aider à comprendre la corrélation entre les caractéristiques :
# Dessiner une matrice de corrélation corrélation_matrix = data.corr() sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm') plt.title('Matrice de corrélation') plt.show()
4. Présentation des résultats et découverte d'idées
Enfin, en affichant visuellement les résultats de l’analyse des données, nous pouvons communiquer plus clairement les informations et les conclusions. Il peut s’agir d’un simple résumé statistique ou d’une visualisation interactive complexe. Par exemple, utilisez Plotly pour créer des graphiques interactifs :
importer plotly.express en tant que px # Créer un nuage de points interactif fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info']) fig.show()
5. Techniques avancées et optimisation
En plus des techniques de visualisation de base, il existe de nombreuses techniques avancées et méthodes d'optimisation dans Python qui peuvent rendre le flux de travail d'analyse des données plus puissant et plus efficace.
5.1 Personnaliser les graphiques à l'aide de Plotly Express
Plotly Express fournit de nombreuses fonctions faciles à utiliser pour créer différents types de graphiques, mais nous avons parfois besoin de plus d'options de personnalisation. En combinant Plotly Express avec les objets graphiques de base de Plotly, nous pouvons réaliser une personnalisation plus avancée. Par exemple, ajoutez des commentaires, ajustez le style du graphique, etc. :
importer plotly.express en tant que px importer plotly.graph_objects au fur et à mesure #Créer un nuage de points fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info']) # ajouter des notes fig.add_annotation(x=5, y=5, text="Point important", showarrow=True, arrowhead=1) #Ajuster le style du graphique fig.update_traces(marker=dict(size=10, line=dict(width=2, color='DarkSlateGrey')), selector=dict(mode='markers')) fig.show()
5.2 Interaction visuelle à l'aide d'Interact
Dans des environnements tels que Jupyter Notebook, l'utilisation de l'interaction visuelle Interact peut rendre l'analyse des données plus dynamique et intuitive. Par exemple, créez un contrôle interactif pour contrôler les paramètres du graphique :
à partir d'ipywidgets, importez, interagissez @interact(colonne='colonne1', bacs=(5, 20, 1)) def plot_histogram(colonne, bacs) : plt.hist (données [colonne], bacs = bacs) plt.title(f'Distribution de {colonne}') plt.xlabel('Valeur') plt.ylabel('Fréquence') plt.show()
5.3 Utilisation des extensions de la bibliothèque de visualisation
En plus des bibliothèques de visualisation courantes telles que matplotlib, seaborn et Plotly, il existe de nombreuses autres bibliothèques de visualisation qui peuvent étendre notre boîte à outils. Par exemple, des bibliothèques telles qu'Altair et Bokeh proposent des graphiques avec différents styles et fonctions, et vous pouvez choisir l'outil approprié en fonction de vos besoins.
importer altair en tant qu'alt alt.Chart(data).mark_bar().encode( x='catégorie', y='compte()' ).interactif()
6. Automatisation et traitement par lots
L'automatisation et le traitement par lots sont cruciaux lorsqu'il s'agit de traiter de grandes quantités de données ou lorsque des analyses répétitives sont nécessaires. Python fournit une multitude de bibliothèques et d'outils pour y parvenir, en utilisant par exemple des boucles, des fonctions ou des outils plus avancés comme Dask ou Apache Spark.
6.1 Traitement par lots des données à l'aide de boucles
Supposons que nous ayons plusieurs fichiers de données qui nécessitent la même opération d'analyse, nous pouvons utiliser une boucle pour traiter ces fichiers par lots et combiner les résultats :
importez-nous data_files = os.listdir('data_folder') résultats = [] pour le fichier dans data_files : data = pd.read_csv(os.path.join('data_folder', file)) # Effectuer des opérations d'analyse de données #... résultats.append (résultat)
6.2 Utiliser des fonctions pour encapsuler les étapes d'analyse de répétabilité
Si nous avons une série d’étapes d’analyse de données qui doivent être effectuées de manière répétée, nous pouvons les encapsuler sous forme de fonctions afin qu’elles puissent être réutilisées sur différentes données :
def analyse_data(données): # Nettoyage et prétraitement des données #... #Analyse et modélisation des données #... #Affichage des résultats et découverte d'informations #... retourner des informations #Appliquer la fonction sur chaque ensemble de données results = [analyze_data(data) pour les données dans data_sets]
6.3 Utiliser Dask ou Apache Spark pour implémenter l'informatique distribuée
Pour les ensembles de données à grande échelle, l’informatique sur une seule machine peut ne pas être en mesure de répondre aux besoins. Dans ce cas, vous pouvez utiliser des frameworks informatiques distribués tels que Dask ou Apache Spark pour traiter les données en parallèle et améliorer l'efficacité du traitement :
importer dask.dataframe en tant que dd #Créer un Dask DataFrame à partir de plusieurs fichiers ddf = dd.read_csv('données*.csv') # Exécuter des opérations d'analyse de données en parallèle résultat = ddf.groupby('colonne').mean().compute()
7. Meilleures pratiques et suggestions d'optimisation
Lors de l'analyse visuelle des données, il existe également quelques bonnes pratiques et suggestions d'optimisation qui peuvent nous aider à mieux utiliser les outils Python :
- Choisissez le type de graphique approprié : choisissez le type de graphique approprié en fonction du type de données et de l'objectif de l'analyse, tel qu'un graphique à barres, un graphique linéaire, un diagramme en boîte, etc.
- Gardez les graphiques simples et clairs : évitez les décorations excessives et les graphiques complexes, gardez les graphiques simples et faciles à lire et mettez en évidence les points clés.
- Commentaires et documentation : ajoutez des commentaires et de la documentation à votre code pour faciliter sa compréhension et sa maintenance, ainsi que son partage et sa collaboration avec d'autres.
- Optimisation des performances : pour les ensembles de données à grande échelle, envisagez d'utiliser des méthodes telles que le calcul parallèle et l'optimisation de la mémoire pour améliorer les performances du code.
- Visualisation interactive : utilisez des outils de visualisation interactifs pour rendre l'exploration des données plus flexible et intuitive, et améliorer l'efficacité de l'analyse.
8. Déployer et partager les résultats
Une fois que vous avez terminé votre analyse de données et obtenu des informations, l'étape suivante consiste à déployer et à partager les résultats avec les parties prenantes concernées. Python offre diverses façons d'y parvenir, notamment la génération de rapports statiques, la création d'applications interactives et même l'intégration des résultats dans des flux de travail automatisés.
8.1 Générer des rapports statiques
Utilisez Jupyter Notebook ou Jupyter Lab pour créer facilement des rapports d'analyse de données interactifs combinant code, visualisations et texte explicatif. Ces blocs-notes peuvent être exportés au format HTML, PDF ou Markdown pour être partagés avec d'autres.
jupyter nbconvert --vers html notebook.ipynb
8.2 Création d'applications interactives
Les résultats de l'analyse des données peuvent être déployés sous forme d'applications Web interactives à l'aide de frameworks tels que Dash, Streamlit ou Flask, permettant aux utilisateurs d'interagir avec les données et d'explorer des informations via une interface Web.
importer un tiret importer dash_core_components en tant que dcc importer dash_html_components au format HTML app = dash.Dash(__nom__) # Définir la mise en page app.layout = html.Div(enfants=[ html.H1(enfants='Tableau de bord d'analyse des données'), dcc.Graph( id='exemple-graphique', chiffre={ 'données': [ {'x' : [1, 2, 3], 'y' : [4, 1, 2], 'type' : 'bar', 'name' : 'Catégorie 1'}, {'x' : [1, 2, 3], 'y' : [2, 4, 5], 'type' : 'bar', 'name' : 'Catégorie 2'}, ], 'mise en page': { 'title' : 'Graphique à barres' } } ) ]) si __name__ == '__main__' : app.run_server(debug=True)
8.3 Intégration dans des flux de travail automatisés
Utilisez un planificateur de tâches tel qu'Airflow ou Celery pour automatiser le processus d'analyse des données et générer régulièrement des rapports ou mettre à jour l'application. Cela garantit que les résultats de l’analyse des données sont toujours à jour et peuvent être automatiquement ajustés et mis à jour selon les besoins.
à partir de datetime importation datetime, timedelta à partir de l'importation du flux d'air DAG depuis airflow.operators.python_operator importer PythonOperator # Définir les tâches def data_analysis() : #Code d'analyse des données passer #Définir le DAG jour = JOUR( 'data_analysis_workflow', default_args={ 'propriétaire' : 'flux d'air', 'depends_on_past' : faux, 'start_date' : dateheure (2024, 1, 1), 'email_on_failure' : faux, 'email_on_retry' : faux, 'nouvelles tentatives' : 1, 'retry_delay' : timedelta (minutes = 5), }, planning_interval=timedelta(jours=1), ) # Définir les tâches tâche = PythonOperator ( task_id='data_analysis_task', python_callable=data_analysis, jour=jour, )
9. Sécurité des données et protection de la vie privée
La sécurité des données et la protection de la vie privée sont cruciales lors de l’analyse et de la visualisation des données. Python fournit des technologies et des bonnes pratiques qui peuvent nous aider à garantir que les données sont entièrement protégées et sécurisées pendant le traitement.
9.1 Cryptage des données et transmission sécurisée
Assurez-vous que des algorithmes de cryptage sécurisés sont utilisés pendant la transmission et le stockage des données, par exemple en utilisant HTTPS pour la transmission des données et le cryptage pour le stockage des données. Les bibliothèques de chiffrement de Python telles que la cryptographie peuvent nous aider à mettre en œuvre le chiffrement et le déchiffrement des données.
à partir de cryptographie.fernet importer Fernet # Générer la clé clé = Fernet.generate_key() cipher_suite = Fernet (clé) # Chiffrer les données cipher_text = cipher_suite.encrypt(b"Bonjour tout le monde !") # Décrypter les données plain_text = cipher_suite.decrypt(cipher_text)
9.2 Contrôle d'accès aux données et authentification
Assurez-vous que seuls les utilisateurs autorisés peuvent accéder aux données sensibles en mettant en œuvre des mécanismes de contrôle d’accès et d’authentification des données. Vous pouvez utiliser les bibliothèques d'authentification de Python telles que Flask-Login, Django-Auth, etc. pour implémenter l'authentification des utilisateurs et la gestion des autorisations.
à partir de l'importation du flacon Flacon, demande, redirection, url_for à partir de flask_login import LoginManager, login_user, current_user, login_required, UserMixin application = Flacon (__nom__) login_manager = LoginManager() login_manager.init_app(app) # Modèle utilisateur Utilisateur de classe (UserMixin) : def __init__(soi, identifiant) : self.id = identifiant #Fonction de rappel d'authentification utilisateur @login_manager.user_loader def load_user(user_id) : retourner l'utilisateur (user_id) # Itinéraire de connexion @app.route('/login', méthodes=['POST']) connexion par défaut() : user_id = request.form['user_id'] utilisateur = Utilisateur (id_utilisateur) login_user(utilisateur) redirection de retour (url_for ('index')) #Itinéraires nécessitant une connexion pour accéder @app.route('/secure') @Connexion requise def secure_page() : return 'Ceci est une page sécurisée' si __name__ == '__main__' : app.run(debug=True)
9.3 Anonymisation et désensibilisation
Pendant le processus d'analyse, l'anonymisation et la désensibilisation peuvent être utilisées pour protéger la confidentialité des données sensibles des utilisateurs. Python fournit des bibliothèques telles que Faker qui peuvent générer des données virtuelles pour remplacer les données réelles à des fins d'analyse.
de l'importation de faux faux = Faux () # Générer un nom virtuel nom = faux.nom() # Générer un e-mail factice email = faker.email() # Générer une adresse virtuelle adresse = faker.adresse()
Résumer
Cet article examine en profondeur un flux de travail complet pour l'analyse de données visuelles dans un environnement Python et présente une série d'étapes clés, d'outils techniques et de bonnes pratiques. Tout d'abord, nous commençons par l'acquisition de données, en utilisant des bibliothèques telles que pandas pour charger et traiter les données ; ensuite, nous effectuons le nettoyage et le prétraitement des données, et utilisons matplotlib, seaborn et d'autres bibliothèques pour effectuer une exploration visuelle afin d'identifier les problèmes et les modèles dans les données ; , nous approfondissons les données Au cours de la phase d'analyse et de modélisation, des techniques d'analyse statistique et d'apprentissage automatique sont utilisées pour exploiter les modèles inhérents aux données ; enfin, les résultats de l'analyse sont affichés via diverses méthodes pour découvrir des informations et fournir un support aux décisions commerciales.
Nous avons ensuite exploré plus en détail les techniques et optimisations avancées, notamment l'utilisation de Plotly Express pour personnaliser les graphiques, l'utilisation de visualisations interactives et la sélection de bibliothèques de visualisation appropriées. De plus, nous abordons l'importance de l'automatisation et du traitement par lots, ainsi que la manière d'exploiter les boucles, les fonctions et les cadres informatiques distribués pour améliorer l'efficacité. En termes de bonnes pratiques et de recommandations d'optimisation, nous soulignons l'importance de choisir le bon type de graphique, de conserver des graphiques simples et clairs, des annotations et de la documentation, l'optimisation des performances et des visualisations interactives.
Enfin, nous avons prêté attention à la sécurité des données et à la protection de la vie privée, en mettant l'accent sur des mesures clés telles que le cryptage et la transmission sécurisée des données, le contrôle d'accès et l'authentification des données, l'anonymisation et la désensibilisation. En appliquant correctement ces technologies et ces meilleures pratiques, nous pouvons garantir la sécurité et la fiabilité du processus d'analyse des données et fournir un support de données crédible pour les décisions commerciales.
Pour résumer, cet article explique de manière exhaustive le flux de travail et les technologies clés de l'analyse visuelle des données en Python, dans le but d'aider les lecteurs à comprendre en profondeur l'ensemble du processus d'analyse des données et à maîtriser des outils et des méthodes efficaces pour faire face aux défis complexes liés aux données dans le monde réel. obtenant ainsi de meilleurs résultats d’analyse et de meilleures informations.
Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~
Les lycéens créent leur propre langage de programmation open source en guise de cérémonie de passage à l'âge adulte - commentaires acerbes des internautes : S'appuyant sur la défense, Apple a publié la puce M4 RustDesk. Les services nationaux ont été suspendus en raison d'une fraude généralisée. À l'avenir, il envisage de produire un jeu indépendant sur la plateforme Windows Taobao (taobao.com) Redémarrer le travail d'optimisation de la version Web, destination des programmeurs, Visual Studio Code 1.89 publie Java 17, la version Java LTS la plus couramment utilisée, Windows 10 a un part de marché de 70 %, Windows 11 continue de décliner Open Source Daily | Google soutient Hongmeng pour prendre le relais ; l'anxiété et les ambitions de Microsoft ont fermé la plate-forme ouverte ;