Python und R
Große Teile dieses Abschnitts wurden von ChatGPT erstellt und dann inhaltlich und redaktionell überarbeitet und ergänzt.
Mit Programmiersprachen wie Python und R lässt sich im Prinzip alles umsetzen, was man für die Analyse und Visualisierung braucht.
Ähnlich wie bei SQL: Coden ist ein nützlicher Skill, es zu lernen erfordert jedoch Zeit. Deswegen sind Workflow Automation Tools oder andere grafische Nutzeroberflächen eine nützliche Alternative. Selbst geschrieben Skripts und Programme erfordern außerdem oft spezielle Maintenance und können Abhängigkeiten zu Entwickler:innen herstellen.
Python
🔢 daten-auswerten 📊 daten-visualisieren 💬 daten-kommunizieren 🧹 daten-organisieren
Python ist eine sehr vielseitige und populäre Programmiersprache. Mit Python könnt ihr Daten aus CiviCRM abrufen, transformieren, analysieren und in interaktiven Dashboards oder Notebooks darstellen.
Datenintegration mit CiviCRM
Python bietet verschiedene Möglichkeiten, um auf CiviCRM-Daten zuzugreifen:
- API-Anbindung: Mit Bibliotheken wie requests oder httpx können direkt API-Anfragen an CiviCRM gestellt werden.
- Datenimport: Mit pandas können CSV- oder JSON-Exporte aus CiviCRM eingelesen und weiterverarbeitet werden.
- Automatisierung: Skripte können regelmäßig ausgeführt werden, um Daten aktuell zu halten.
Beispiele dafür, wie ihr die API in Python nutzen könnt, findet ihr im Repository in den Ordnern supporting_code/notebooks und supporting_code/test_data. Letzteres ist der Code, den wir für die Erstellung von Testdaten verwendet haben.
Analyse und Visualisierung
Für die Analyse und Visualisierung von CiviCRM-Daten stehen zahlreiche Bibliotheken zur Verfügung:
- Interaktive Dashboards und Anwendungen: Mit dash, streamlit, Quarto oder Marimo können interaktive Dashboards bzw. kleine Datenanwendungen erstellt werden.
- Notebooks & Berichte: Marimo, Jupyter Notebooks, JupyterLab oder Quarto ermöglichen eine interaktive Datenanalyse und Dokumentation in einem Dokument. Aus diesen Dokumenten können PDF- oder HTML-Berichte/Reports erstellt werden. Letztere bieten abhängig vom gewählten Tool und der genauen Implementation ein gewisses Maß an Interaktivität.
- Datenanalyse: pandas und numpy ermöglichen komplexe Datenanalysen, Filterungen und Transformationen.
- Statistische Analysen: scipy und statsmodels bieten erweiterte statistische Funktionen.
- Visualisierung: matplotlib, seaborn und plotly helfen, Daten in ansprechenden Grafiken darzustellen.
Potenziell interessante Frameworks und Tools
- pandas – Datenanalyse und -manipulation
- numpy – Numerische Berechnungen
- matplotlib – Grundlegende Visualisierungen
- seaborn – Statistische Datenvisualisierung
- plotly – Interaktive Visualisierungen
- dash – Interaktive Dashboards
- streamlit – Schnelle Erstellung von Web-Apps für Daten
- Jupyter Notebooks – Interaktive Datenanalyse und Dokumentation
Fazit
Python ist eine sehr gute Wahl, wenn ihr CiviCRM-Daten nicht nur analysieren, sondern auch in automatisierte Prozesse, interaktive Dashboards oder Webanwendungen integrieren wollt. Die Sprache bietet eine große Flexibilität und viele Tools für Datenanalyse, Visualisierung und Automatisierung. Wenn ihr bereits mit Python arbeitet oder eine skalierbare Lösung für komplexe Datenanalysen sucht, ist Python richtig für euch.
Leider war es im Rahmen des Datenvorhabens zeitlich nicht möglich, die zahlreichen und vielfältigen Umsetzungsmöglichkeiten von Python in einem angemessenen Umfang zu erkunden. Deswegen haben wir uns dagegen entschieden, konkrete Ansätze mit Python vorzustellen. Wenn ihr Interesse an Python habt, schaut gerne in der Datensprechstunde vorbei und wir besprechen eure konkreten Fragen und Anforderungen!
R
🔢 daten-auswerten 📊 daten-visualisieren 🧹 daten-organisieren
R ist eine Programmiersprache und Umgebung, die speziell für statistische Datenanalyse und Visualisierung entwickelt wurde. Sie eignet sich hervorragend für die Integration, Analyse und Darstellung von CiviCRM-Daten, insbesondere wenn statistische Auswertungen im Vordergrund stehen.
Datenintegration mit CiviCRM
R bietet verschiedene Pakete, um Daten aus CiviCRM zu importieren und zu verarbeiten:
- API-Anbindung: Mit Paketen wie httr oder curl können direkt API-Anfragen an CiviCRM gestellt werden.
- Datenimport: Pakete wie readr oder jsonlite ermöglichen das Einlesen von CSV- oder JSON-Dateien aus CiviCRM.
- Automatisierung: R-Skripte können regelmäßig ausgeführt werden, um Daten zu aktualisieren.
Analyse und Visualisierung
R bietet eine Vielzahl von Paketen für die Analyse und Visualisierung von Daten:
- Datenanalyse: dplyr und tidyr ermöglichen das Bereinigen, Transformieren und Analysieren von Daten.
- Statistische Analysen: R bietet eine breite Palette an Paketen für statistische Analysen, darunter stats und ggplot2.
- Visualisierung: ggplot2 ist eines der mächtigsten Pakete für Datenvisualisierung und ermöglicht die Erstellung hochwertiger Grafiken.
- Interaktive Dashboards: Mit shiny können interaktive Webanwendungen und Dashboards erstellt werden.
- Notebooks: R Markdown und RStudio ermöglichen die Erstellung von interaktiven Berichten und Notebooks, die Analyse und Dokumentation kombinieren.
Potenziell interessante Pakete und Tools
- RStudio – Entwicklungsumgebung für R
- Quarto oder RMarkdown – Interaktive Berichte, Dashboards und Notebooks
- shiny – Interaktive Dashboards und Web-Apps
- tidyverse Packages: Sammlung von aufeinander abgestimmten Packages, die Datenmanipulation, Datenbereinigung (u.a.
dplyr,tidyr) und Datenvisualisierung (ggplot2) in R ermöglichen. - httr – API-Anfragen
- jsonlite – JSON-Datenverarbeitung
Fazit: R
R ist die beste Wahl, wenn euer Fokus auf statistischen Analysen und hochwertigen Visualisierungen liegt. Die Sprache bietet viele Pakete für Datenanalyse und -darstellung, insbesondere für wissenschaftliche oder detaillierte statistische Auswertungen. Mit Tools wie shiny, Quarto und RMarkdown könnt ihr interaktive Berichte und Dashboards erstellen; mit ggplot könnt ihr eure Daten visualisieren.
Leider war es im Rahmen des Datenvorhabens zeitlich nicht möglich, die zahlreichen und vielfältigen Umsetzungsmöglichkeiten von R in einem angemessenen Umfang zu erkunden. Deswegen haben wir uns dagegen entschieden, konkrete Ansätze mit R vorzustellen. Wenn ihr Interesse an R habt, schaut gerne in der Datensprechstunde vorbei und wir besprechen eure konkreten Fragen und Anforderungen!