Spielen Sie mit Mastodons Archiv in Python 2 Count Antworten und Favoriten

Einführung

Für das Archiv von Mustdon wird empfohlen, auf Das obige [Python] Post-Datums- und Zeitstreudiagramm im Archiv von Mastodon ... zu verweisen. Insbesondere werde ich diesmal den Teil des Lesens aus der JSON-Datei und des Speicherns des Toot-Inhalts in Objekten weglassen.

Antwortziele zählen

Sammeln Sie Antwortziel-IDs

at = []
for object in objects:
    if '@' in object:
        at.append(object)
name = []
others = []
for a in at:
    while '@' in a:
        if ' ' in a:
            name.append(a[1:a.index(' ')])
            a=a[a.index(' ')+1:]
        else:
            others.append(a)
            break
len(name)

Ich habe das Tag aus dem Toot-Inhalt entfernt, aber da @onekodate am Anfang bleibt, werde ich zuerst nach dem Tag suchen, das @ aus dem Toot-Inhalt enthält. Als nächstes holen Sie von der zweiten in die leere nach der ID. Beachten Sie die Toots, die diesen Platz nicht haben, und die Toots, die mehrere Ziele haben. Toots ohne Leerzeichen werden von anderen gesammelt, daher ist es eine gute Idee, sie zu überprüfen. Wenn es Erwähnungen gibt, sind sie normalerweise leer, daher werde ich sie weglassen. Wiederholen Sie den Vorgang auch mit der while-Anweisung, um den Vorgang zu wiederholen, solange im Rest @ vorhanden ist, um nicht mehrere Ziele zu verpassen. Dadurch werden die Ziel-IDs erfasst.

Zähle jede Frequenz

import pandas as pd
name = pd.Series(name)
namerank = name.value_counts()
print(namerank[0:29])

Da value.counts () von pandas.Series praktisch ist, habe ich es absichtlich konvertiert, um es zu verwenden, und es wurde entwickelt, um die 30 besten Personen anzuzeigen.

Zählen Sie die Ziele der Fabo

Laden Sie liks.json

import json
import numpy as np
file = 'likes.json'
with open(file, 'r', encoding='utf-8') as fi:
    novels = json.load(fi)  
for novel in novels:
    likes = np.array(novels[novel])
len(likes)

Laden Sie liks.json, das die Ziel-URL des Favoriten enthält, genauso wie Sie outbox.json zu Beginn des vorherigen Zeitraums geladen haben.

Sammle fabelhafte Ziele

favuser = []
others = []
for like in likes:
    if 'users' in like and 'statuses' in like:
        favuser.append(like[like.index('users')+6:like.index('statuses')-1])
    else:
        others.append(like)
len(favuser)

In Likes wird die URL des Ziels der Fabo wie https://mstdn.jp/users/onekodate/statuses/99502681496689830 geschrieben, und die URL von Mastodon enthält die ID-Informationen. Bitte nehmen Sie sie heraus. Sie können erkennen, wer Sie sind, aber hier gibt es zwei Probleme. ・ Misskey- und Pleroma-URLs enthalten keine ID-Informationen ・ Manchmal ist das mysteriöse Zeichen string'tag: pawoo.net, 2017-09-15: objectId = 41135378: objectType = Status in der URL enthalten. Ich kann nichts gegen diese beiden tun, also werde ich sie für andere beiseite legen. Daher enthält die URL "Benutzer" und "Status", und die Zeichenfolge zwischen ihnen wird als ID abgerufen.

Zähle jede Frequenz

import pandas as pd
fav = pd.Series(favuser)
favrank = fav.value_counts()
print(favrank[0:29])

Dies ist genau das gleiche wie bei der Beantwortung. Sie müssen nicht jedes Mal Pandas importieren.

Stellen Sie den Übergang der Anzahl der Favoriten grafisch dar

follower = np.zeros((10,len(favuser)))
for i in range(len(favuser)):
    for j in range(10):
        if favuser[i]==favrank.index[j]:
            follower[j][i:len(favuser)] = follower[j][i] + 1

Ich werde den Übergang der Anzahl der Fabs für die 10 angesehenen Leute grafisch darstellen, die viele Fabs von mir haben. Es gibt keine Zeitdaten in lik.json, aber sie sind wahrscheinlich in chronologischer Reihenfolge angeordnet. Nehmen wir also an, dass die Reihenfolge als Zeit betrachtet werden kann. Erstellen Sie ein zweidimensionales Array mit numpy und zählen Sie mit Gewalt. Wenn Sie nur ein Diagramm zeichnen möchten, sollten Sie es meines Erachtens jedes Mal schreiben, ohne ein zweidimensionales Array zu erstellen.

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10, 5), dpi=200)
for j in range(10):
    plt.plot(range(len(favuser)),follower[j],label=favrank.index[j])
    plt.legend(bbox_to_anchor=(1, 1), loc='upper left', borderaxespad=0, fontsize=18)
fig.savefig('favtime.png')

favtime.png Hier ist der mit der Legende entfernt. Die Nummer eins war überwältigend, aber es scheint, dass es in letzter Zeit träge war, sicherlich habe ich es in letzter Zeit nicht gesehen. Die hellblaue Person auf Platz 10 scheint in letzter Zeit träge gewesen zu sein, weil sie wiedergeboren wurde.

abschließend

Ich dachte, es wäre interessant, die Beziehung zu meinen Anhängern zu sehen, also schaute ich mir die Antworten an. Sie können wahrscheinlich auf die gleiche Weise steigern. Wenn Sie diese Person sehen können, wird es ärgerlich und ärgerlich sein, aber wir freuen uns auf Ihre Verwendung.

Recommended Posts

Spielen Sie mit Mastodons Archiv in Python 2 Count Antworten und Favoriten
Suchen und spielen Sie YouTube-Videos mit Python
Fraktal zum Erstellen und Spielen mit Python
Umgang mit "Jahren und Monaten" in Python
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
[REAPER] Wie man Reascript mit Python spielt
Spielen Sie mit Google Spread Sheet mit Python (OAuth)
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Spielen Sie YouTube in Python
Berechnen Sie Pose- und Transformationsunterschiede in Python mit ROS
Hit Mastodons API in Python
Programmieren mit Python und Tkinter
Ein Skript, das bis zu 5 Sekunden zählt und in Blenders Python stoppt
Veriloggen und Cocotb werden nur zum Entwerfen und Testen von Verilog in Python verwendet.
Ver- und Entschlüsselung mit Python
Word Count mit Apache Spark und Python (Mac OS X)
Schaben mit Selen in Python
Python und Hardware-Verwenden von RS232C mit Python-
Betreiben Sie LibreOffice mit Python
Schaben mit Chromedriver in Python
Debuggen mit pdb in Python
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
Umgang mit Sounds in Python
Scraping mit Selen in Python
Tweet mit Bild in Python
[Python] Spielen Sie mit Discords Webhook.
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Kombiniert mit Ordnungszahl in Python
Stapel und Warteschlange in Python
Python mit Pyenv und Venv
Unittest und CI in Python
Installieren Sie CaboCha in der Ubuntu-Umgebung und rufen Sie es mit Python auf.
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Funktioniert mit Python und R.
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Wirf etwas mit Python in Kinesis und stelle sicher, dass es drin ist
Ausgabe von Firebase-Authentifizierungstoken in Python und Token-Validierung mit Fast API
Spielen Sie mit statistischer Modellierung: Quantifizieren Sie die Stärke von J-League-Teams mit Stan und Python
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Zahlenerkennung in Bildern mit Python
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Roboter läuft mit Arduino und Python
Testen mit Zufallszahlen in Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Unterschied zwischen == und ist in Python
Scraping mit Node, Ruby und Python
Zeigen Sie Fotos in Python und HTML an
GOTO in Python mit erhabenem Text 3
Sortieralgorithmus und Implementierung in Python
Scraping mit Selen in Python (Basic)
CSS-Analyse mit cssutils in Python
Scraping mit Python, Selen und Chromedriver