Am 6. Juli 2023 machte OpenAI eine offizielle Ankündigung auf Twitter über die Verfügbarkeit des Code-Interpreters für Nutzer mit ChatGPT Plus-Abonnements. Diese neue Ergänzung birgt großes Potenzial, die Fähigkeiten und Funktionen von ChatGPT zu erweitern. Wir werden uns einige interessante Aufgaben ansehen, die wir mit dem Code-Interpreter von ChatGPT erledigen könnten.
Der Code-Interpreter ermöglicht das Ausführen von Code und erleichtert das Hochladen von Daten, so dass Benutzer seine Fähigkeiten für Aufgaben wie Datenbereinigung, Analyse, Visualisierung und zahlreiche andere Anwendungen nutzen können.
Lassen Sie uns seine praktische Anwendung durch spezifische Aufgaben erforschen. Früher hätten diese speziellen Aufgaben mehrere Stunden in Anspruch genommen. Je nach Komplexität der Aufgabe und der Vertrautheit einer Person mit Python-Bibliotheken kann es jedoch noch mehr Zeit benötigen.
Mit Hilfe des Code-Interpreters von ChatGPT wurde die Durchführung dieser Aufgabe erheblich vereinfacht.
In den folgenden Abschnitten werde ich Sie Schritt für Schritt durch den Ablauf der Aufgaben führen und die bemerkenswerten Fähigkeiten des Code-Interpreters in verschiedenen Bereichen, einschließlich Datenverständnis, Reinigung und Vorverarbeitung, sowie der Erstellung von Datenvisualisierungen, hervorheben.
Datenkarten plotten
Unsere erste Aufgabe bestand darin, eine Visualisierung mit einer Karte der USA zu erstellen, auf der Städte mit Punkten markiert sind, deren Größe proportional zur Anzahl der Mitarbeiter aus jeder Stadt ist. Die Daten stammten aus 2 CSV-Dateien namens „Employee_Sample_Data.csv“ und „uscities.csv“.
Ich gab den folgenden Befehl an den ChatGPT zusammen mit den relevanten Datendateien.
„Schreibe einen Python-Code, der eine Visualisierung mit der USA-Karte erstellt und Städte mit Punkten markiert, deren Größe proportional zur Anzahl der Mitarbeiter aus jeder Stadt ist. Die Mitarbeiterdaten sind in der Datei „Employee_Sample_Data.csv“ gegeben. Und die Koordinaten der US-Städte sind in der Datei „udcities.csv“ gegeben.“
Wenn Sie die CSV-Dateien nacheinander mit der Plus-Taste auf der linken Seite des Nachrichtenbereichs hochladen, liest der Code-Interpreter die Datei und gibt die Informationen der Datei aus, wie die Mitarbeiter-ID, den vollständigen Namen, den Berufsbezeichnung, die Abteilung, die Geschäftseinheit, das Geschlecht, die ethnische Zugehörigkeit, das Alter, das Einstellungsdatum, das Jahresgehalt, den Bonusprozentsatz, das Land, die Stadt und das Austrittsdatum.
Wenn Sie auf den Dropdown-Pfeil auf der Registerkarte „Arbeit anzeigen“ klicken, sehen Sie den Python-Code und die tatsächlichen Ergebnisse, die Sie verwenden können, um die Daten aus der CSV-Datei zu lesen. Das Schöne daran ist, dass der Code-Interpreter die Datenformate auch korrigiert, wenn es Probleme damit gibt.
import pandas as pd
# Reload the data
df = pd.read_csv('/mnt/data/Employee_Sample_Data.csv', encoding='ISO-8859-1')
# Display the first few rows of the DataFrame
df.head()
Obwohl wir einige Herausforderungen mit der Geokodierung der Städte aufgrund von Einschränkungen in der Umgebung und den Geokodierungsdiensten hatten, löste die manuelle Bereitstellung der „udcities.csv“-Datei, welche die Längen- und Breitengradinformationen enthielt, das Problem. Und der Code-Interpreter schlug einen Python-Code vor, der erfolgreich in der Google Colab Umgebung ausgeführt werden konnte.
Der Code-Interpreter erklärt, was er mit dem Code macht:
Lädt die Daten aus den CSV-Dateien.
Filtert die Mitarbeiterdaten, um nur Zeilen einzuschließen, in denen das Land die Vereinigten Staaten ist.
Gruppiert die Mitarbeiterdaten nach Stadt und zählt die Anzahl der Mitarbeiter in jeder Stadt.
Vereint die Mitarbeiterdaten mit den Stadt-Koordinatendaten auf den ‚City’/’city‘ Spalten.
Erstellt ein Streudiagramm auf einer Karte der USA mit Plotly, wobei die Größe jedes Punktes der Anzahl der Mitarbeiter in jeder Stadt entspricht.
pip install pandas plotly numpy matplotlib
import pandas as pd
import plotly.express as px
import numpy as np
# Load the data
df = pd.read_csv('Employee_Sample_Data.csv', encoding='ISO-8859-1')
df_cities = pd.read_csv('uscities.csv')
# Filter data for USA only
df_usa = df[df['Country'] == 'United States']
# Group data by city and count the number of employees in each city
df_usa = df_usa.groupby('City').size().reset_index(name='Employees')
# Merge the employee data with the city coordinates data
df_usa = pd.merge(df_usa, df_cities, left_on='City', right_on='city')
# Generate a column of random colors
np.random.seed(0) # For reproducibility
df_usa['Color'] = np.random.randint(0, 100, df_usa.shape[0]) # Random integers between 0 and 100
# Create the plot
fig = px.scatter_geo(df_usa, lat="lat", lon="lng", size="Employees", color="Color",
color_continuous_scale=px.colors.sequential.Plasma, size_max=15, scope='usa')
fig.show()
Ergebnis:
Visualisierung von Trends in den Daten
Das Beste ist, dass Sie, wenn Sie keine Ahnung haben, welche Trends Sie in den Daten suchen sollen, danach fragen können.
Erstellen Sie eine visuelle Darstellung der Trends in den Daten in „Employee_Sample_Data“
ChatGPT Code Interpreter wird Ihnen eine Liste von Trends vorschlagen, die sinnvoll sind.
Bevor wir die Trends in diesen Daten visualisieren können, müssen wir verstehen, an welchen spezifischen Trends oder Beziehungen Sie interessiert sind. Hier sind einige mögliche Visualisierungen, die wir erstellen könnten:
- Die Verteilung der Mitarbeiter nach Abteilung oder Jobtitel.
- Die Verteilung der Mitarbeiter nach Geschlecht oder Ethnie.
- Die Altersverteilung der Mitarbeiter.
- Die Verteilung der Jahresgehälter (vielleicht aufgeteilt nach Abteilung, Jobtitel, Geschlecht oder Ethnie).
- Die Verteilung der Boni (wiederum vielleicht aufgeteilt nach Abteilung, Jobtitel, Geschlecht oder Ethnie).
- Die Anzahl der Mitarbeiter, die jedes Jahr eingestellt wurden (d.h. das Wachstum des Unternehmens über die Zeit).
- Die Anzahl der Mitarbeiter, die das Unternehmen jedes Jahr verlassen haben (d.h. Fluktuation über die Zeit).
Könnten Sie bitte spezifizieren, welche Art von Trends oder Beziehungen Sie gerne untersuchen möchten?
Zuerst konzentrierten wir uns auf die Anzahl der Mitarbeiter, die das Unternehmen jedes Jahr verlassen haben, eine Metrik, die auch als Fluktuation bekannt ist. Nachdem wir das ‚Exit Date‘ in ein Jahresformat umgewandelt haben, erstellten wir ein Liniendiagramm, das den Fluktuations-Trend über die Jahre zeigt. Dies zeigte eine Zunahme der Fluktuation, insbesondere auffällig im Jahr 2021.
Wir richteten dann unsere Aufmerksamkeit auf das Wachstum des Unternehmens, repräsentiert durch die Anzahl der jährlich eingestellten Mitarbeiter. Wiederum haben wir das ‚Einstellungsdatum‘ in ein Jahresformat umgewandelt und das Ergebnis dargestellt. Dies zeigte, dass das Unternehmen jedes Jahr mehr Mitarbeiter eingestellt hat, was auf Wachstum hindeutet.
Darüber hinaus haben wir die Verteilung der Mitarbeiter nach Abteilungen mithilfe eines Kreisdiagramms visualisiert. Dadurch konnten wir auf einen Blick erkennen, dass die IT-Abteilung die höchste Anzahl an Mitarbeitern hatte, gefolgt von der Abteilung für Ingenieurwesen.
Sie können die Diagramme auch in einer herunterladbaren Form anzeigen und zudem ein Dashboard mit allen notwendigen Faktoren erstellen, auf die Sie achten müssen.
Erzeugung von Word Clouds und Bildanpassungen
Eine weitere spannende Aufgabe, die wir in Angriff genommen haben, war die Erzeugung einer Wortwolke. Wir haben eine Textdatei mit dem Namen „Newspaper_content.txt“ verwendet, um eine kreisförmige, dunkelthemenbezogene Wortwolke zu erstellen. Die Wortwolke repräsentierte die am häufigsten auftretenden Wörter im Text, wobei die Größe jedes Wortes seine Häufigkeit anzeigte.
Erstellen Sie eine elliptische, farbenfrohe Wortwolke mit dunklem Thema für den hochgeladenen Textinhalt „Product_reviews.txt“.
Dies ist der Python-Code, den der Code-Interpreter vorschlägt.
from wordcloud import WordCloud, STOPWORDS
from matplotlib import pyplot as plt
# Load the text data
with open('Product_reviews.txt', 'r') as file:
text = file.read()
# Define the stopwords
stopwords = set(STOPWORDS)
# Create a word cloud
wc = WordCloud(background_color='white',
max_words=2000,
contour_width=3,
contour_color='steelblue',
collocations=False,
stopwords=stopwords)
# Generate the word cloud
wc.generate(text)
# Display the word cloud
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
Der Code-Interpreter hat stattdessen eine Standardform erstellt und sich wegen der Einschränkungen in der Umgebung entschuldigt, bat jedoch darum, es stattdessen auf dem lokalen Rechner zu versuchen.
Bildanpassungen
Neben der Erstellung von Wortwolken haben wir auch die Fähigkeit zur Bildmanipulation demonstriert. Wir haben ein Bild zugeschnitten, um Elemente an den Seiten zu entfernen und den mittleren Teil unberührt zu lassen, und haben es auch schwarz-weiß gemacht, wobei eine einzelne Farbe unverändert blieb. Dies zeigte, wie man ChatGPT als Werkzeug zur Bildmanipulation nutzen kann, indem man das ursprünglich mit Midjourney erstellte Bild zum Code-Interpreter hochlädt.
Die Ergebnisse waren effektiv, aber das sind die geringsten Bearbeitungen, die du dir für ein Bild vorstellen kannst. Versuche selbst, weitere Manipulationen durchzuführen.
Die Ergebnisse waren effektiv, aber das sind die kleinsten Bearbeitungen, die du dir für ein Bild vorstellen kannst. Versuche selbst, weitere Manipulationen durchzuführen. | Von diesem Bild, behalte die roten und orangefarbenen Gläser und mache die anderen Teile schwarz-weiß. |
QR-Code
Eine weitere coole Sache, die Sie mit dem ChatGPT Code Interpreter machen können, ist das Erstellen von QR-Codes. Hier haben wir einen QR-Code erstellt, der Sie zur Website „Predictea“ führt.
„Erstellen Sie einen QR-Code für https://www.predictea.com.“
Zusammenfassung
Through these tasks, we’ve seen that OpenAI’s ChatGPT Code Interpreter plugin is more than just a text generator and code creator.it’s a powerful tool that can execute Python code most importantly you can upload a code and ask to explain it, recommend improvements for better efficiency and error correction, making it incredibly useful for tasks such as data analysis, visualization, and more. It has potential applications in various fields, from business analytics to academic research and beyond. And with its continuous improvements and updates, we’re excited to see what ChatGPT will be capable of in the future.