Zum jetzigen Zeitpunkt beansprucht Fb mehr als 3,07 Milliarden monatlich aktive Benutzer. Das heißt, wenn Sie diesen Artikel lesen, sind Sie wahrscheinlich ein Fb -Benutzer. Aber wie viel von einem Fb -Nutzer sind Sie? Wie viel postest du wirklich? Wir können herausfinden, ob wir Fb -Daten mit Python analysieren!
Insbesondere verwenden wir Python, um dies zu erstellen – ein Diagramm, das zeigt, wie oft wir jeden Monat im Laufe der Zeit gepostet haben:
Für die Zwecke dieses Tutorials gehen wir davon aus, dass Sie mit den Grundlagen von Python und mit Jupyter -Notizbüchern vertraut sind. Dieses Tutorial zur Analyse Ihrer Amazon -Ausgaben Erste.
Schritt 1: Laden Sie Ihre Fb -Daten herunter
Mit Fb können wir so ziemlich alles herunterladen, was wir jemals auf der Web site gemacht haben. Du kannst Laden Sie Ihre Daten hier herunteraber Sie möchten vielleicht nicht alles herunterladen – diese Datei könnte sein massivje nachdem, wie oft Sie Fb verwenden und wie lange Sie dabei waren.
Für dieses Tutorial schauen wir uns speziell in unseren persönlichen Fb -Posts und versuchen Sie die Fragen zu beantworten:
- Wie oft poste ich?
- Verwende ich Fb mehr oder weniger als früher?
Um nur die Daten zu Beiträgen zu erhalten, gehen Sie in die Datendownload -Seite. Ändern Sie das angeforderte Dateiformat von HTML in JSON und wählen Sie dann alles aus den folgenden Optionen ab nur Beiträge und schlagen Datei erstellen.
Fb wird Sie benachrichtigen, wenn Ihre Datei erstellt wurde und zum Obtain bereit ist – es kann eine Weile dauern, abhängig von Ihrer Fb -Geschichte und Ihren Optionen.
Laden Sie die ZIP -Datei herunter, entpacken Sie sie und suchen Sie nach der posts
Ordner und eine Datei aufgerufen your_posts_1.json
. Das ist die Datei, die wir für dieses Tutorial verwenden werden.
Schritt 2: Importieren und formatieren Sie Ihre Daten
Als nächst Ein Anfängerleitfaden zu Jupyter -Notizbüchern Wenn Sie eine Auffrischung benötigen). Wir werden zunächst die Daten importieren und in einen Datenrahmen lesen.
Der eingebaute pd.read_json()
Die Funktion kann unsere JSON -Daten in einem Datenrahmen automatisch interpretieren. (Es ist nicht perfekt, wie Sie sehen werden, aber es wird hier für unsere Zwecke funktionieren).
import pandas as pd
# learn the json file right into a dataframe
df = pd.read_json('your_posts_1.json')
df.head(3)
Zeitstempel | Anhänge | Daten | Titel | Tags | |
---|---|---|---|---|---|
0 | 2020-08-12 16:54:03 | ({‚Knowledge‘: ({‚external_context‘: {‚url‘: ‚https … | ({‚publish‘: ’steh ein kleines Video auf Clea zusammen … | Charlie Custer veröffentlicht in YT Industries -Eigentümern … | Nan |
1 | 2020-08-09 23:41:14 | ({‚Knowledge‘: ({‚external_context‘: {‚url‘: ‚https … | ({‚publish‘: ‚mehr herausfordernder, aber irgendwie weniger d … | Nan | Nan |
2 | 2020-08-02 20:11:51 | ({‚Knowledge‘: ({‚external_context‘: {‚url‘: ‚https … | ({‚publish‘: ‚Neues Video auf dem Kanal … insgesamt … | Nan | Nan |
Wie wir sehen können, ist das nicht perfekt. Einige unserer Säulen haben in jeder Zeile die Unterspalten verschachtelt, die sich noch im JSON-Format befinden. Wenn wir mit diesen Daten arbeiten wollten, müssten wir uns damit befassen.
Aber um unsere Frage hier zu beantworten – Veröffentlichen wir mehr oder weniger als früher auf Fb? – Wir müssen uns wirklich nicht mit den tatsächlichen Put up -Inhalten oder anderen Informationen wie beigefügten Mediendateien befassen. Wir sind nur besorgt um Frequenz – Wie oft wurden neue Beiträge gemacht.
Als Nächst to_datetime()
. Wir werden es auch umbenennen 'date'
Und lassen Sie einige der unnötigen Spalten nur aus Klarheit fallen – dieser Schritt ist nicht streng notwendig, aber er hilft uns, etwas Einfacheres zu betrachten.
# rename the timestamp column
df.rename(columns={'timestamp': 'date'}, inplace=True)
#drop some pointless columns
df = df.drop(('attachments', 'title', 'tags'), axis=1)
# ensuring it is datetime format
pd.to_datetime(df('date'))
df.head(3)
Datum | Daten | |
---|---|---|
0 | 2020-08-12 16:54:03 | ({‚publish‘: ’steh ein kleines Video auf Clea zusammen … |
1 | 2020-08-09 23:41:14 | ({‚publish‘: ‚mehr herausfordernder, aber irgendwie weniger d … |
2 | 2020-08-02 20:11:51 | ({‚publish‘: ‚Neues Video auf dem Kanal … insgesamt … |
Jetzt haben wir etwas sauberer, mit dem wir arbeiten können! Wenn wir überprüfen möchten, wie viele Beiträge wir analysieren, könnten wir verwenden df.form
die Zeilen zählen.
Es könnte auch eine gute Idee sein, sie zu verwenden df.tail()
Um das Ende unseres Datenrahmens zu überprüfen, um sicherzugehen, dass sich dies wirklich über unsere gesamte Fb -Nutzung erstreckt:
print(df.form)
df.tail(3)
(4407, 2)
Datum | Daten | |
---|---|---|
4404 | 2005-10-20 03:23:30 | Nan |
4405 | 2005-10-20 03:23:30 | Nan |
4406 | 2005-03-07 01:05:54 | ({‚publish‘: ‚Moist Sizzling American Summer time Teesince … |
Bei meinen persönlichen Fb -Daten sieht es so aus, als hätte ich insgesamt über 4.000 Mal gepostet. Meine Daten beginnt Anfang 2005, als ich anscheinend etwas darüber gepostet habe Moist heißer amerikanischer Sommer. Ich conflict 2005 auf dem Faculty, so dass das Timing auscheckt.
Sie können feststellen, dass einige Reihen sagen NaN
– Dies waren Beiträge, die nur Bilder enthielten, keinen Textual content. Die Bilder würden in der verknüpft sein 'attachments
‚Säule, aber wir haben das fallen gelassen, additionally ist sie hier nicht sichtbar.
Schritt 3: Analysieren Sie Fb -Daten, um Ihre monatliche Postanzahl herauszufinden
Nachdem wir unsere Daten haben, müssen wir sie in ein Format bringen, das uns etwas über die Postfrequenz erzählt. Angesichts der Tatsache, dass wir hier Jahre der Geschichte erstrecken, ist es am sinnvollsten, es zu betrachten. Dies bedeutet, dass wir unsere gruppieren müssen 'date'
Spalte nach Monaten und zählen Sie, wie viele Zeilen (dh Posts) jeden Monat zugeordnet sind.
Zum Glück soll Pandas es relativ einfach machen, mit Zeitreihendaten zu arbeiten. Wir müssen hier zwei Dinge tun:
- Setzen Sie die
date
Spalte als Index unseres Datenrahmens. - Proben Sie die Daten nach Monat erneut erneut und zählen Sie, wie viele Beiträge in jedem Monat stattfinden.
Für den ersten Schritt können wir verwenden set_index()
. Der zweite Schritt ist etwas komplexer. Lassen Sie uns additionally in vier separate Schritte aufschlüsseln, um den Code aufzubrechen, den wir schreiben müssen:
- Wählen Sie die Spalte aus, nach der wir wieder eingeteilt werden möchten – in diesem Fall ist die
knowledge
Spalte. - Benutze die
.resample()
Funktion mit dem Argument'MS'
(für „Monat Begin“), um unsere Daten nach Monat wiederzuproben. - Verwenden
.dimension()
Um anzugeben, was wir jeden Monat messen möchten – in diesem Fall die Anzahl der Zeilen (dh Posts) mit einem Postdatum, der innerhalb dieses Monats fällt. - Weisen Sie die resultierende Serie einer Variablen mit dem Namen zu
post_counts
.
So sieht das in der Praxis aus:
date
2005-03-01 1
2005-04-01 0
2005-05-01 0
2005-06-01 0
2005-07-01 0
..
2020-04-01 2
2020-05-01 5
2020-06-01 7
2020-07-01 6
2020-08-01 3
Freq: MS, Identify: knowledge, Size: 186, dtype: int64
Das sieht toll aus! Wir haben unsere Postzählungen bis zum Monat unterteilt, und wenn wir den Originaldatensatz überprüfen, können wir schnell sehen, dass die Zählungen korrekt sind.
Beachten Sie, dass Monate ohne Beiträge korrekt als als 0
anstatt einfach übersprungen. Das ist einer der Gründe, warum die Verwendung resample()
die für die Arbeit mit Zeitreihen konzipiert ist, ist besser für diese Artwork von Aufgabe als so etwas wie zu verwenden groupby()
wo es einfach ist, Monate ohne Daten zu überspringen, wenn wir nicht aufpassen.
Schritt 4: Visualisieren Sie Ihre Fb -Nutzung
Wie auch immer, jetzt, wo wir den schwierigen Teil hinter uns haben, ist nur noch der Spaß: Visualisierung! Dazu importieren wir Matplotlib (und verwenden die $matplotlib inline
Magie, um unser Diagramm im Jupyter -Notizbuch erscheinen zu lassen. Wir werden auch Seeborn und Numpy importieren, was uns hilft, eine lesbar aussehende Tabelle zu erstellen.
Sobald wir unsere Importe erledigt haben, werden wir verwenden sns.set()
Setzen Sie die Größe und Schriftgröße unseres Diagramms. Da wir hier mit vielen Daten arbeiten, werden wir das Diagramm ziemlich groß machen und sicherstellen, dass die Schriftgröße groß genug ist, um lesbar zu sein.
Dann setzen wir die X -Labels für den Index von post_counts
(die Daten) und verwenden sns.barplot()
So erstellen Sie ein Balkendiagramm. In den Argumenten für sns.barplot()
Wir werden die Funktion mit den von uns definierten X -Beschriftungen mitteilen, um die Daten in zu zeichnen post_counts
und um die Bar Farbe blau zu machen.
Das allein würde ausreichen, um ein Primary -Diagramm zu erstellen, aber in diesem Fall möchten wir einige zusätzliche Schritte ausführen, um das Diagramm lesbar zu machen. Insbesondere möchten wir die Zeckenpositionen auf der X -Achse bis alle 24 Monate anordnen, damit wir alle zwei Jahre im resultierenden Diagramm eine Häkchen sehen. Wir werden auch die Daten im Diagramm neu formatieren, damit nur das Jahr angezeigt wird.
Notiz: Da dies nicht ist Ein Tutorial über Daten nämlichWir werden nicht in die Tiefe gehen, wie dies als Teil dieses Tutorials funktioniert. Wenn Sie jedoch mehr darüber erfahren möchten, wie Sie großartige Datenvisualisierungen mit Python erstellen möchten, haben wir uns Einführung in die Datenvisualisierung in Python Und Geschichtenerzählen durch Datenvisualisierung Kurse, die Sie kostenlos versuchen können.
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# set determine dimension and font dimension
sns.set(rc={'determine.figsize':(40,20)})
sns.set(font_scale=3)
# set x labels
x_labels = post_counts.index
#create bar plot
sns.barplot(x_labels, post_counts, shade="blue")
# solely present x-axis labels for Jan 1 of each different yr
tick_positions = np.arange(10, len(x_labels), step=24)
#reformat date to show yr onlyplt.ylabel("publish counts")
plt.xticks(tick_positions, x_labels(tick_positions).strftime("$Y"))
# show the plot
plt.present()
Hier ist das Diagramm – Sie können klicken, um es in voller Größe anzuzeigen.
Es gibt immer noch einige Möglichkeiten, wie wir dieses Diagramm noch schöner machen könnten, aber für unsere Zwecke ist dies ausreichend, um die Daten zu verstehen und unsere Fb -Posting -Geschichte zu analysieren.
In meinem Fall – das obige Diagramm sind meine persönlichen Fb -Daten – können wir sehen, dass ich in den frühen Tagen nur selten auf Fb gepostet habe. Ich hatte große Überflüsse von Beiträgen – Hunderte professional Monat! – Im Sommer 2007 und im Frühjahr 2009 fiel mit Reisen zusammen.
Meine regelmäßige Nutzung begann sich um 2011 zu erhöhen und erreichte um 2016 die Spitzenwerte. Danach starb sie ab, und ich habe seit einiger Zeit im Jahr 2019 aufgehört, Fb vollständig zu benutzen !
Und denken Sie daran, das ist nur Beiträgenicht Kommentare! Es gibt eine ganz andere JSON -Datei für Kommentare, aber es ist mir peinlich, wie es ist. Wenn Sie Ihre Fb -Datenanalyse weiter abrufen möchten, wäre es ein großartiger nächster Schritt!
Nennen wir es in diesem Tutorial intestine und überprüfen, was wir getan haben:
- Wir haben persönliche Verwendungsdaten von Fb heruntergeladen
- Wir lesen die JSON -Datei in einem Pandas -Datenfreame
- Wir haben die Daten nach Monat abgebrochen und die Anzahl der Beiträge jeden Monat gezählt
- Wir haben die Fb -Nutzung visualisiert und etwas gelernt: Charlie verbrachte früher zu viel Zeit auf Fb.
Wenn Sie gerne solche Projekte durchführen, lesen Sie den interaktiven, in Ihrem Browser von DataQuest Knowledge Science -Kurse! Sie sind eindringlicher und so, viel detaillierter als das, was wir hier behandelt haben. In der Tat haben wir nahtlose Kurssequenzen, die Sie vom Gesamtanfänger zum berufsqualifizierten Bereich bringen können DatenanalystAnwesend Datenwissenschaftleroder Dateningenieur.
Jetzt, da Sie gesehen haben, wie viel Zeit Sie auf Fb verschwendet haben, müssen Sie sich in DataQuest anmelden und einige Ihrer On-line -Zeit damit verbringen, wertvolle berufliche Fähigkeiten zu erstellen? Sie können ein Konto erstellen und kostenlos lernen – keine Kreditkarte erforderlich!