Dieser Artikel wurde von der Huawei Cloud Community „ A Comprehensive Guide to Python Visual Data Analysis from Data Acquisition to Insight Discovery “ von Lemony Hug geteilt.
In der Welt der Datenwissenschaft und -analyse ist Visualisierung ein leistungsstarkes Werkzeug, das uns hilft, Daten zu verstehen, Muster zu entdecken und Erkenntnisse abzuleiten. Python bietet eine Fülle von Bibliotheken und Tools, um den Workflow der visuellen Datenanalyse effizient und flexibel zu gestalten. In diesem Artikel wird der Workflow der visuellen Datenanalyse in Python vorgestellt, von der Datenerfassung bis zur endgültigen visuellen Anzeige der Erkenntnisse.
1. Datenerfassung
Bevor Sie mit der Datenanalyse beginnen, müssen Sie zunächst die Daten beschaffen. Python bietet verschiedene Bibliotheken zur Verarbeitung von Daten aus verschiedenen Quellen, z. B. Pandas zur Verarbeitung strukturierter Daten, Anfragen zum Abrufen von Netzwerkdaten oder die Verwendung spezialisierter Bibliotheken zur Verbindung mit Datenbanken. Beginnen wir mit einem einfachen Beispiel, dem Laden von Daten aus einer CSV-Datei:
Pandas als PD importieren # Daten aus CSV-Datei laden data = pd.read_csv('data.csv') # Sehen Sie sich die ersten Datenzeilen an print(data.head())
2. Datenbereinigung und Vorverarbeitung
Sobald die Daten geladen sind, erfolgt im nächsten Schritt die Datenbereinigung und Vorverarbeitung. Dazu gehört der Umgang mit fehlenden Werten, Ausreißern, Datentransformationen usw. Auch die Visualisierung spielt in dieser Phase oft eine wichtige Rolle und hilft uns, Probleme in den Daten zu erkennen. Beispielsweise können wir Matplotlib oder Seaborn verwenden, um verschiedene Diagramme zu zeichnen, um die Verteilung und Beziehungen der Daten zu untersuchen:
matplotlib.pyplot als plt importieren Seaborn als SNS importieren # Histogramm zeichnen plt.hist(data['column_name'], bins=20) plt.title('Verteilung von Spaltenname') plt.xlabel('Wert') plt.ylabel('Frequenz') plt.show() # Zeichnen Sie ein Streudiagramm sns.scatterplot(x='column1', y='column2', data=data) plt.title('Streudiagramm von Spalte1 vs. Spalte2') plt.show()
3. Datenanalyse und Modellierung
Nach der Datenbereinigung und Vorverarbeitung führen wir normalerweise eine Datenanalyse und -modellierung durch. Dies kann Techniken wie statistische Analysen und maschinelles Lernen umfassen. In dieser Phase kann uns die Visualisierung helfen, die Beziehungen zwischen Daten besser zu verstehen und die Leistung des Modells zu bewerten. Wenn wir beispielsweise Seaborn verwenden, um eine Korrelationsmatrix zu zeichnen, können wir die Korrelation zwischen Merkmalen besser verstehen:
# Korrelationsmatrix zeichnen korrelationsmatrix = data.corr() sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm') plt.title('Korrelationsmatrix') plt.show()
4. Präsentation der Ergebnisse und Gewinnung von Erkenntnissen
Schließlich können wir durch die visuelle Darstellung der Ergebnisse der Datenanalyse Erkenntnisse und Schlussfolgerungen klarer kommunizieren. Dies kann eine einfache statistische Zusammenfassung oder eine komplexe interaktive Visualisierung sein. Verwenden Sie beispielsweise Plotly, um interaktive Diagramme zu erstellen:
plotly.express als px importieren # Erstellen Sie ein interaktives Streudiagramm fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info']) fig.show()
5. Fortgeschrittene Techniken und Optimierung
Zusätzlich zu den grundlegenden Visualisierungstechniken gibt es in Python viele fortgeschrittene Techniken und Optimierungsmethoden, die den Datenanalyse-Workflow leistungsfähiger und effizienter machen können.
5.1 Anpassen von Diagrammen mit Plotly Express
Plotly Express bietet viele benutzerfreundliche Funktionen zum Erstellen verschiedener Arten von Diagrammen, aber manchmal benötigen wir mehr Anpassungsoptionen. Durch die Kombination von Plotly Express mit den grundlegenden Diagrammobjekten von Plotly können wir eine erweiterte Anpassung erreichen. Fügen Sie beispielsweise Kommentare hinzu, passen Sie den Diagrammstil usw. an:
plotly.express als px importieren importiere plotly.graph_objects als go #Erstellen Sie ein Streudiagramm fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info']) # Notizen hinzufügen fig.add_annotation(x=5, y=5, text="Wichtiger Punkt", showarrow=True, Pfeilspitze=1) #Diagrammstil anpassen fig.update_traces(marker=dict(size=10, line=dict(width=2, color='DarkSlateGrey')), selector=dict(mode='markers')) fig.show()
5.2 Visuelle Interaktion mit Interact
In Umgebungen wie Jupyter Notebook kann die Verwendung der visuellen Interaktion von Interact die Datenanalyse dynamischer und intuitiver gestalten. Erstellen Sie beispielsweise ein interaktives Steuerelement, um die Parameter des Diagramms zu steuern:
von ipywidgets importieren interagieren @interact(column='column1', bins=(5, 20, 1)) def plot_histogram(column, bins): plt.hist(data[column], bins=bins) plt.title(f'Distribution of {column}') plt.xlabel('Wert') plt.ylabel('Frequenz') plt.show()
5.3 Verwendung von Visualisierungsbibliothekserweiterungen
Neben gängigen Visualisierungsbibliotheken wie Matplotlib, Seaborn und Plotly gibt es viele weitere Visualisierungsbibliotheken, die unsere Toolbox erweitern können. Beispielsweise stellen Bibliotheken wie Altair und Bokeh Diagramme mit unterschiedlichen Stilen und Funktionen bereit, und Sie können das passende Tool entsprechend Ihren Anforderungen auswählen.
Altair als alt importieren alt.Chart(data).mark_bar().encode( x='Kategorie', y='count()' ).interactive()
6. Automatisierung und Stapelverarbeitung
Automatisierung und Stapelverarbeitung sind von entscheidender Bedeutung, wenn große Datenmengen verarbeitet werden oder wiederholte Analysen erforderlich sind. Python bietet eine Fülle von Bibliotheken und Tools, um dies zu erreichen, beispielsweise mithilfe von Schleifen, Funktionen oder fortgeschritteneren Tools wie Dask oder Apache Spark.
6.1 Stapelverarbeitung von Daten mithilfe von Schleifen
Angenommen, wir haben mehrere Datendateien, die denselben Analysevorgang erfordern, können wir eine Schleife verwenden, um diese Dateien stapelweise zu verarbeiten und die Ergebnisse miteinander zu kombinieren:
Importieren Sie uns data_files = os.listdir('data_folder') Ergebnisse = [] für Datei in data_files: data = pd.read_csv(os.path.join('data_folder', file)) # Führen Sie Datenanalysevorgänge durch # ... results.append(result)
6.2 Verwenden Sie Funktionen, um Schritte der Wiederholbarkeitsanalyse zu kapseln
Wenn wir eine Reihe von Datenanalyseschritten haben, die wiederholt ausgeführt werden müssen, können wir sie als Funktionen kapseln, sodass sie für verschiedene Daten wiederverwendet werden können:
defanalysate_data(data): # Datenbereinigung und Vorverarbeitung # ... #Datenanalyse und Modellierung # ... #Ergebnisanzeige und Erkenntnisgewinnung # ... Erkenntnisse zurückgeben #Funktion auf jeden Datensatz anwenden results = [analyze_data(data) für Daten in data_sets]
6.3 Verwenden Sie Dask oder Apache Spark, um verteiltes Computing zu implementieren
Bei großen Datensätzen kann die Einzelmaschinenberechnung möglicherweise nicht die Anforderungen erfüllen. In diesem Fall können Sie Distributed-Computing-Frameworks wie Dask oder Apache Spark verwenden, um Daten parallel zu verarbeiten und die Verarbeitungseffizienz zu verbessern:
Importieren Sie dask.dataframe als dd #Erstellen Sie Dask DataFrame aus mehreren Dateien ddf = dd.read_csv('data*.csv') # Führen Sie Datenanalysevorgänge parallel aus result = ddf.groupby('column').mean().compute()
7. Best Practices und Optimierungsvorschläge
Bei der visuellen Datenanalyse gibt es auch einige Best Practices und Optimierungsvorschläge, die uns dabei helfen können, Python-Tools besser zu nutzen:
- Wählen Sie den geeigneten Diagrammtyp: Wählen Sie je nach Datentyp und Analysezweck den geeigneten Diagrammtyp aus, z. B. Balkendiagramm, Liniendiagramm, Boxplot usw.
- Halten Sie Diagramme einfach und klar: Vermeiden Sie übermäßige Dekoration und komplexe Grafiken, halten Sie Diagramme einfach und leicht lesbar und heben Sie wichtige Punkte hervor.
- Kommentare und Dokumentation: Fügen Sie Kommentare und Dokumentation zu Ihrem Code hinzu, um das Verständnis und die Wartung sowie die Freigabe und Zusammenarbeit mit anderen zu erleichtern.
- Leistungsoptimierung: Erwägen Sie bei großen Datensätzen die Verwendung von Methoden wie parallelem Rechnen und Speicheroptimierung, um die Codeleistung zu verbessern.
- Interaktive Visualisierung: Verwenden Sie interaktive Visualisierungstools, um die Datenexploration flexibler und intuitiver zu gestalten und die Analyseeffizienz zu verbessern.
8. Ergebnisse bereitstellen und teilen
Sobald Sie Ihre Datenanalyse abgeschlossen und Erkenntnisse gewonnen haben, besteht der nächste Schritt darin, die Ergebnisse bereitzustellen und mit relevanten Stakeholdern zu teilen. Python bietet eine Vielzahl von Möglichkeiten, dies zu erreichen, einschließlich der Erstellung statischer Berichte, der Erstellung interaktiver Anwendungen und sogar der Integration der Ergebnisse in automatisierte Arbeitsabläufe.
8.1 Statische Berichte erstellen
Verwenden Sie Jupyter Notebook oder Jupyter Lab, um ganz einfach interaktive Datenanalyseberichte zu erstellen, die Code, Visualisierungen und erklärenden Text kombinieren. Diese Notizbücher können in das HTML-, PDF- oder Markdown-Format exportiert werden, um sie mit anderen zu teilen.
jupyter nbconvert --to html notebook.ipynb
8.2 Interaktive Anwendungen erstellen
Datenanalyseergebnisse können mithilfe von Frameworks wie Dash, Streamlit oder Flask als interaktive Webanwendungen bereitgestellt werden, sodass Benutzer über eine Webschnittstelle mit Daten interagieren und Erkenntnisse gewinnen können.
Bindestrich importieren importiere dash_core_components als dcc importiere dash_html_components als HTML app = dash.Dash(__name__) # Layout definieren app.layout = html.Div(children=[ html.H1(children='Data Analysis Dashboard'), dcc.Graph( id='example-graph', Figur={ 'Daten': [ {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'Kategorie 1'}, {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': 'Kategorie 2'}, ], 'Layout': { 'title': 'Balkendiagramm' } } ) ]) if __name__ == '__main__': app.run_server(debug=True)
8.3 Integration in automatisierte Arbeitsabläufe
Verwenden Sie einen Aufgabenplaner wie Airflow oder Celery, um den Datenanalyseprozess zu automatisieren und regelmäßig Berichte zu erstellen oder die Anwendung zu aktualisieren. Dadurch wird sichergestellt, dass die Ergebnisse der Datenanalyse stets aktuell sind und bei Bedarf automatisch angepasst und aktualisiert werden können.
aus datetime import datetime, timedelta aus dem Luftstrom-Import-DAG Von airflow.operators.python_operator importieren Sie PythonOperator # Aufgaben definieren def data_analysis(): #Datenanalysecode passieren #DAG definieren Tag = TAG( 'data_analysis_workflow', default_args={ 'Besitzer': 'Luftstrom', 'depends_on_past': Falsch, 'start_date': datetime(2024, 1, 1), 'email_on_failure': Falsch, 'email_on_retry': Falsch, 'Wiederholungen': 1, 'retry_delay': timedelta(Minuten=5), }, scheme_interval=timedelta(days=1), ) # Aufgaben definieren task = PythonOperator( task_id='data_analysis_task', python_callable=data_analysis, Tag=Tag, )
9. Datensicherheit und Datenschutz
Datensicherheit und Datenschutz sind bei der Datenanalyse und -visualisierung von entscheidender Bedeutung. Python bietet Technologien und Best Practices, die uns dabei helfen können, sicherzustellen, dass die Daten während der Verarbeitung vollständig geschützt und sicher sind.
9.1 Datenverschlüsselung und sichere Übertragung
Stellen Sie sicher, dass bei der Datenübertragung und -speicherung sichere Verschlüsselungsalgorithmen verwendet werden, z. B. HTTPS für die Datenübertragung und Verschlüsselung für die Datenspeicherung. Pythons Verschlüsselungsbibliotheken wie Kryptografie können uns bei der Implementierung der Datenverschlüsselung und -entschlüsselung helfen.
aus cryptography.fernet Fernet importieren # Schlüssel generieren key = Fernet.generate_key() cipher_suite = Fernet(Schlüssel) # Daten verschlüsseln cipher_text = cipher_suite.encrypt(b"Hallo, Welt!") # Daten entschlüsseln plain_text = cipher_suite.decrypt(cipher_text)
9.2 Datenzugriffskontrolle und Authentifizierung
Stellen Sie sicher, dass nur autorisierte Benutzer auf sensible Daten zugreifen können, indem Sie Datenzugriffskontroll- und Authentifizierungsmechanismen implementieren. Sie können die Authentifizierungsbibliotheken von Python wie Flask-Login, Django-Auth usw. verwenden, um die Benutzerauthentifizierung und Berechtigungsverwaltung zu implementieren.
aus Flask importieren Flask, Anfrage, Weiterleitung, url_for aus flask_login importiere LoginManager, login_user, current_user, login_required, UserMixin app = Flask(__name__) login_manager = LoginManager() login_manager.init_app(app) # Benutzermodell Klasse Benutzer(UserMixin): def __init__(self, id): self.id = id #Rückruffunktion zur Benutzerauthentifizierung @login_manager.user_loader def load_user(user_id): return User(user_id) # Login-Route @app.route('/login', methoden=['POST']) def login(): user_id = request.form['user_id'] user = Benutzer(user_id) login_user(Benutzer) Return Redirect(url_for('index')) #Routen, für deren Zugriff eine Anmeldung erforderlich ist @app.route('/secure') @Anmeldung erforderlich def secure_page(): return „Dies ist eine sichere Seite“ if __name__ == '__main__': app.run(debug=True)
9.3 Anonymisierung und Desensibilisierung
Während des Analyseprozesses können Anonymisierung und Desensibilisierung zum Schutz der Privatsphäre der Benutzer bei sensiblen Daten eingesetzt werden. Python bietet einige Bibliotheken wie Faker, die virtuelle Daten generieren können, um reale Daten für die Analyse zu ersetzen.
von Faker Import Faker faker = Faker() # Virtuellen Namen generieren name = faker.name() # Dummy-E-Mail generieren email = faker.email() # Virtuelle Adresse generieren Adresse = faker.address()
Zusammenfassen
Dieser Artikel befasst sich eingehend mit einem umfassenden Workflow für die visuelle Datenanalyse in einer Python-Umgebung und stellt eine Reihe wichtiger Schritte, technische Tools und Best Practices vor. Zuerst beginnen wir mit der Datenerfassung, indem wir Bibliotheken wie Pandas zum Laden und Verarbeiten von Daten verwenden. Anschließend führen wir eine Datenbereinigung und Vorverarbeitung durch und verwenden dann Matplotlib, Seaborn und andere Bibliotheken, um eine visuelle Untersuchung durchzuführen, um Probleme und Muster in den Daten zu identifizieren , wir vertiefen uns in die Daten. In der Analyse- und Modellierungsphase werden statistische Analysen und Techniken des maschinellen Lernens verwendet, um die inhärenten Muster der Daten zu ermitteln. Schließlich werden die Analyseergebnisse mit verschiedenen Methoden angezeigt, um Erkenntnisse zu gewinnen und Geschäftsentscheidungen zu unterstützen.
Anschließend untersuchten wir weiter fortgeschrittene Techniken und Optimierungen, einschließlich der Verwendung von Plotly Express zum Anpassen von Diagrammen, der Verwendung interaktiver Visualisierungen und der Auswahl geeigneter Visualisierungsbibliotheken. Darüber hinaus behandeln wir die Bedeutung von Automatisierung und Stapelverarbeitung und wie man Schleifen, Funktionen und verteilte Computer-Frameworks nutzen kann, um die Effizienz zu verbessern. Im Hinblick auf Best Practices und Optimierungsempfehlungen betonen wir die Bedeutung der Auswahl des richtigen Diagrammtyps, der Einfachheit und Klarheit der Diagramme, der Anmerkungen und Dokumentation, der Leistungsoptimierung und der interaktiven Visualisierungen.
Schließlich haben wir auf Datensicherheit und Datenschutz geachtet und dabei den Schwerpunkt auf Schlüsselmaßnahmen wie Datenverschlüsselung und sichere Übertragung, Datenzugriffskontrolle und -authentifizierung, Anonymisierung und Desensibilisierung gelegt. Durch die ordnungsgemäße Anwendung dieser Technologien und Best Practices können wir die Sicherheit und Zuverlässigkeit des Datenanalyseprozesses gewährleisten und glaubwürdige Datenunterstützung für Geschäftsentscheidungen bieten.
Zusammenfassend erklärt dieser Artikel umfassend den Arbeitsablauf und die Schlüsseltechnologien der visuellen Datenanalyse in Python und soll den Lesern helfen, den gesamten Prozess der Datenanalyse tiefgreifend zu verstehen und effektive Tools und Methoden für den Umgang mit komplexen Datenherausforderungen in der realen Welt zu beherrschen. Dadurch erhalten Sie bessere Analyseergebnisse und Erkenntnisse.
High-School-Schüler erstellen ihre eigene Open-Source-Programmiersprache als Coming-of-Age-Zeremonie – scharfe Kommentare von Internetnutzern: Unter Berufung auf die Verteidigung hat Apple den M4-Chip RustDesk veröffentlicht. Inländische Dienste wurden wegen grassierenden Betrugs eingestellt . In Zukunft plant er, ein unabhängiges Spiel auf der Windows-Plattform Taobao (taobao.com) zu produzieren. Webversionsoptimierungsarbeiten neu starten, Ziel für Programmierer, Visual Studio Code 1.89 veröffentlicht Java 17, die am häufigsten verwendete Java LTS-Version, Windows 10 hat eine Marktanteil von 70 %, Windows 11 geht weiter zurück ; Google unterstützt Hongmeng bei der Übernahme von Open-Source-Rabbit-R1;