https://www.youtube.com/watch?v=bwnlxmt_gj0
In diesem Leitfaden werde ich Sie durch die Analyse von Marktdaten für cell Apps führen, um worthwhile Entwicklungsstrategien zu empfehlen. Dieses geführte Projekt, Worthwhile App -Profile für den App Retailer und Google Play MarketsSie helfen Ihnen dabei, praktische Fähigkeiten in Python, Datenreinigung und explorative Analyse zu entwickeln.
Wir werden die Rolle eines Datenanalysts übernehmen, der für ein App -Entwicklungsunternehmen arbeitet. Unser Ziel ist es, die lukrativsten App -Kategorien zu identifizieren. Durch die Analyse mobiler App -Marktdaten sowohl aus dem Google Play Retailer als auch im Apple App Retailer bestimmen wir, welche Arten von Apps eher Benutzer anziehen und Einnahmen generieren.
Was Sie lernen:
- So reinigen und vorprofessionen Sie Rohdatensätze
- So analysieren Sie Tendencies der App -Kategorie und Benutzerpräferenzen
- So verwenden Sie Frequenztabellen, um Datenerkenntnisse aufzudecken
- So organisieren und teilen Sie Ihre Arbeit über GitHub
Stellen Sie vor dem Eintauchen in dieses Projekt sicher, dass Sie mit Python -Funktionen, bedingten Logik-, Schleifen- und Jupyter -Pocket book -Grundlagen vertraut sind. Wenn Sie neu in Python sind, werden diese grundlegenden Fähigkeiten in DataQuests behandelt Python -Grundlagen für die Datenanalysekurs.
Beginnen wir jetzt mit dem Einrichten Ihres Arbeitsbereichs!
Schritt 1: Einrichten der Umgebung
Wenn Sie in der DataQuest -Plattform an diesem Projekt arbeiten, können Sie diesen Schritt überspringen, da für Sie bereits alles eingerichtet ist. Wenn Sie jedoch vor Ort arbeiten möchten, stellen Sie sicher, dass Sie Folgendes einrichten:
Schritt 2: Öffnen und Erforschen der Daten
Wir werden zunächst die Datensätze laden und untersuchen, die Informationen zu Apps aus dem App Retailer und Google Play Retailer enthalten. Wir verwenden diesen Ansatz anstelle von Pandas, um sicherzustellen, dass Anfänger und diejenigen, die mit Pandas nicht vertraut sind, immer noch Datenanalyse effektiv durchführen können. Der Tutor betonte, wie wichtig es ist, zu verstehen, was jede Datensatzspalte darstellt, bevor sie Transformationen oder Berechnungen durchführen.
from csv import reader
# Load the Google Play Retailer knowledge
opened_file = open('googleplaystore.csv')
read_file = reader(opened_file)
android = listing(read_file)
android_header = android(0)
android = android(1:)
# Load the App Retailer knowledge
opened_file = open('AppleStore.csv')
read_file = reader(opened_file)
ios = listing(read_file)
ios_header = ios(0)
ios = ios(1:)
Um die Daten zu erleichtern, definieren wir eine Funktion, die eine bestimmte Anzahl von Zeilen aus einem Datensatz anzeigt und die Dimensionen des Datensatzes anzeigt.
def explore_data(dataset, begin, finish, rows_and_columns=False):
dataset_slice = dataset(begin:finish)
for row in dataset_slice:
print(row)
print('n') # Provides a brand new line between rows
if rows_and_columns:
print('Variety of rows:', len(dataset))
print('Variety of columns:', len(dataset(0)))
# Discover the primary few rows of the Android dataset
print(android_header)
explore_data(android, 0, 3, True)
# Discover the primary few rows of the iOS dataset
print(ios_header)
explore_data(ios, 0, 3, True)
Schritt 3: Datenreinigung
Die Datenreinigung ist ein kritischer Schritt, um die Genauigkeit unserer Analyse sicherzustellen. Während die Reinigung von wesentlicher Bedeutung ist, kann das Entfernen zu viel Daten zu einem Verlust wertvoller Erkenntnisse führen. Zu den wichtigsten Überlegungen gehören:
- Entfernen falscher Daten: Identifizieren und entfernen Sie Zeilen mit Fehlern oder fehlenden Informationen.
del android(10472) # Eradicating incorrect row with lacking knowledge
- Duplikate entfernen: Einige Apps werden im Datensatz mehrfach angezeigt. Für die doppelten Fälle behalten wir die Einträge nur mit der höchsten Anzahl von Bewertungen. Zuerst suchen wir nach doppelten App -Namen und erstellen eine Liste eindeutiger Apps und doppelter Apps. Mithilfe eines Wörterbuchs werden wir dann überprüfen, ob wir für jede doppelte App die höchste Bewertungszahl haben (da eine höhere Bewertungszahl am höchsten dem neuesten Datenpunkt für diese App entspricht). Schließlich erstellt dieser Deduplizierungsprozess eine neue saubere Liste mit dem Namen
android_clean
.
duplicate_apps = ()
unique_apps = ()
for app in android:
title = app(0)
if title in unique_apps:
duplicate_apps.append(title)
else:
unique_apps.append(title)
reviews_max = {}
for app in android:
title = app(0)
n_reviews = float(app(3))
if title in reviews_max and reviews_max(title) < n_reviews:
reviews_max(title) = n_reviews
elif title not in reviews_max:
reviews_max(title) = n_reviews
android_clean = ()
already_added = ()
for app in android:
title = app(0)
n_reviews = float(app(3))
if (reviews_max(title) == n_reviews) and (title not in already_added):
android_clean.append(app)
already_added.append(title)
- Entfernen von nicht englischen Apps: Um einen relevanten Datensatz zu verwalten, filtern wir Apps mit Namen mit nicht englischen Zeichen heraus. Dies geschieht durch die Untersuchung jedes Zeichens im App -Namen und der Überprüfung des entsprechenden ASCII -Werts. Das englische Alphabet und gemeinsame Symbole fallen in den Normal-ASCII-Bereich (0-127). Um Emojis oder gelegentliche nicht englische Charaktere (z. B. Akzentschreiben) zu berücksichtigen, erlauben wir bis zu 3 nicht englische Charaktere, bevor wir eine App herausfiltern.
# Perform to examine if a string comprises solely English characters
def is_english(string):
non_ascii = 0
for character in string:
if ord(character) > 127:
non_ascii += 1
if non_ascii > 3:
return False
else:
return True
android_english = ()
ios_english = ()
for app in android_clean:
title = app(0)
if is_english(title):
android_english.append(app)
for app in ios:
title = app(1)
if is_english(title):
ios_english.append(app
Schritt 4: kostenlose Apps isolieren
Da unser Unternehmen kostenlose Apps entwickelt, werden wir unsere Analyse auf kostenlose Anwendungen konzentrieren.
# Filter out paid apps from each datasets
android_final = ()
ios_final = ()
for app in android_english:
value = app(7)
if value == '0':
android_final.append(app)
for app in ios_english:
value = app(4)
if value == '0.0':
ios_final.append(app)
Schritt 5: Analyse der App -Kategorien
Das Verständnis, welche Genres am häufigsten und beliebt sind, kann unsere App -Entwicklungsstrategie beeinflussen. Wir werden die Häufigkeit jedes Genres berechnen und die Metriken für die Benutzerbindung von Benutzern untersuchen.
# Perform to generate frequency tables
def freq_table(dataset, index):
desk = {}
complete = 0
for row in dataset:
complete += 1
worth = row(index)
if worth in desk:
desk(worth) += 1
else:
desk(worth) = 1
table_percentages = {}
for key in desk:
share = (desk(key) / complete) * 100
table_percentages(key) = share
return table_percentages
def display_table(dataset, index):
desk = freq_table(dataset, index)
table_display = ()
for key in desk:
key_val_as_tuple = (desk(key), key)
table_display.append(key_val_as_tuple)
table_sorted = sorted(table_display, reverse = True)
for entry in table_sorted:
print(entry(1), ':', entry(0))
# Show the frequency desk for the prime_genre column within the iOS dataset
display_table(ios_final, -5)
Schritt 6: Ermittlung der beliebtesten Apps nach Style
Um festzustellen, welche Genres die meisten Benutzer anziehen, werden wir die durchschnittliche Anzahl von Benutzerbewertungen für jedes Style im App Retailer -Datensatz berechnen.
genres_ios = freq_table(ios_final, -5)
# Calculate the typical variety of consumer scores per style
for style in ios_genres:
complete = 0
len_genre = 0
for app in ios_free:
if app(-5) == style:
n_ratings = float(app(5))
complete += n_ratings
len_genre += 1
avg_n_ratings = complete / len_genre
print(style, ':', avg_n_ratings)
In ähnlicher Weise analysieren wir den Google Play Retailer -Datensatz, indem wir die Anzahl der Installationen für jede App -Kategorie untersuchen.
# Calculate the typical variety of installs per class
categories_android = freq_table(android_final, 1)
for class in categories_android:
complete = 0
len_category = 0
for app in android_final:
category_app = app(1)
if category_app == class:
n_installs = app(5)
n_installs = n_installs.change(',', '')
n_installs = n_installs.change('+', '')
complete += float(n_installs)
len_category += 1
avg_n_installs = complete / len_category
print(class, ':', avg_n_installs)
Schritt 7: Hochladen Ihres Projekts auf GitHub
Nach Abschluss Ihrer Analyse ist es wichtig, Ihre Arbeit zu teilen und zu speichern. GitHub ist eine weit verbreitete Plattform für die Versionskontrolle und die Projektzusammenarbeit. Wenn Sie neu in GitHub sind, können Sie mit beginnen Github GistDies ist eine großartige Möglichkeit, Ihre Arbeit zu teilen, ohne in komplexe Versionskontrollbefehle zu tauchen.
- Gehen zu Github Gist.
- Melden Sie sich in Ihrem Github -Konto an (oder erstellen Sie einen, wenn Sie keine haben).
- Klicken Sie auf „Neues Gist“.
- Kopieren Sie und fügen Sie Ihren Jupyter -Pocket book -Code in das Textfeld ein und fügen Sie Ihre CODE, um Ihre hochzuladen
.ipynb
Datei. - Fügen Sie eine Beschreibung hinzu und wählen Sie „Erstellen Sie geheime Kern“ (privat) oder „Öffentliche Kern schaffen“ (sichtbar für alle).
- Nach dem Hochladen generiert Github Gist einen gemeinsam genutzbaren Hyperlink, mit dem Sie Ihr Projekt präsentieren können.
Ein detaillierteres Tutorial zum Teilen Ihres Projekts mit Github GISTs finden Sie unter Dieser Leitfaden.
Nächste Schritte
Nachdem Sie den vollständigen Workflow gesehen haben, probieren Sie dieses Projekt selbst aus. Arbeiten Sie an der Arbeit an der Worthwhile App -Profilprojekte Jetzt und setzen Sie Ihre Fähigkeiten auf die Prüfung. Sobald Sie Ihre Analyse abgeschlossen haben, teilen Sie Ihre Ergebnisse und Erkenntnisse in unserer Dataquest -Neighborhood Suggestions zu bekommen und sich mit anderen Lernenden zu beschäftigen.
Wenn Sie neu in Python sind oder eine Auffrischung benötigen, lesen Sie unsere Python -Grundlagen für die Datenanalysekurs Aufbau der grundlegenden Fähigkeiten, die für dieses Projekt erforderlich sind.