[PYTHON] Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren

Goodwill des gestapelten Balkendiagramms

Samari

Ich habe die Menge an Spacha von 2020/1/1 bis 2020/6/30 gesammelt und angeschaut

Organisieren Sie YouTube-Kommentardaten

Erfassung von Spachadaten

Informationen zum Abrufen von Kommentardaten finden Sie in den in den vorherigen Artikeln aufgeführten Referenzartikeln. Die Struktur der Kommentardaten wird in den folgenden Artikeln ausführlich beschrieben. https://zetta777.hatenablog.com/entry/2019/11/09/200816

Entsprechend dieser Struktur werden die Daten der Spacha-Menge erfasst.

Fremdwährungsumrechnung

Viele andere Währungen als der japanische Yen werden auf Spacha geworfen. Geben Sie hier für die Währung, die in den von mir verwendeten Daten vorhanden war, den Währungskurs mit ** festem Wert ** an.

currency_to_rate = {'¥': 1, 'SGD': 80, 'CA$': 80, 'NT$': 3.65, '$': 110, 'A$': 75, '€': 125, 'PHP': 2.15, 'MX$': 5, \
    'HK$': 14, '₩': 0.1, 'RUB': 1.5, 'NZ$': 70, 'ARS': 1.5, 'CHF': 114, '£': 134, 'PEN': 30, 'CLP': 0.13, 'PLN': 27.5, \
    'HUF': 0.35, 'R$': 20, 'RON': 25, '₹': 1.43, 'SEK': 11.5, 'NOK': 11.5, 'UYU': 2.5, 'BOB': 15.5, 'BYN': 45, \
    'CRC': 0.185, 'ZAR': 6.5, 'ISK': 0.77, 'COP': 0.0295, 'DKK': 16.25, 'PYG': 0.0156, 'CZK': 4.55, 'GTQ': 13.94, \
    'HRK': 16.29, 'HNL': 4.3, 'UGX': 0.029, 'RSD': 1.04, 'BGN': 62, 'NIO': 3.1, 'DOP': 1.82}

Da es sich um einen festen Wert handelt, gibt es natürlich einen Unterschied zu der Rate zum Zeitpunkt des Werfens der Spacha, aber ich betrachte diesen Effekt hier nicht. Die Menge an Spacha wird in purchaseAmountText der json-Datei des YouTube-Kommentars beschrieben und durch "Währungsinformationen + Betrag" wie "100 Yen" für Yen und "5 Dollar" für Dollar ausgedrückt. Wenn Sie dies zerlegen und den oben genannten Wechselkurs anwenden, können Sie ihn in den japanischen Yen-Wert umrechnen.

#Entfernen Sie zusätzliche Zeichenfolgen
def remove(string, remove_targets=[',', '\xa0']):
    tmp = str(string)
    for target in remove_targets:
        tmp = tmp.replace(target, '')
    return tmp

repatter = re.compile(r'[^0-9]*')
df['tmp'] = df.purchaseAmountText.map(remove)
df['Ccy'] = df.tmp.apply(lambda price: repatter.match(price).group())
df['LocalPrice'] = df.apply(lambda row: float(row.tmp.replace(row.Ccy, '')), axis=1)
df['JPY'] = df.LocalPrice * channel_to_df[key].Ccy.map(currency_to_rate)

Analyse von YouTube-Kommentardaten

Analyseziel

Ergebnis der Analyse

Gestapelte Balkendiagramme werden für jedes Büro und jeden Händler gestapelt, und jeder Balken entspricht der Währung. Außerdem ist die Zahl unter der Währung der Gesamtbetrag der Spacha dieser Währung nach Umrechnung in japanischen Yen. Grundsätzlich ist die Einheit des Gesamtbetrags Yen und wird in der Grafik in M ¥ (Millionen Yen = 1 Million Yen) angezeigt.

Büroeinheit

Was ich fand

jimusyo.png

Verteilereinheit

Gesamtmenge an Spacha

Was ich fand

Top 10 Distributoren von Spacha Menge

ChannelName Kind JPY Ccy
Kanata Ch.Kanata Amane Hololive Japan 37343515.3 ALL
Miko Ch.Sakura Miko Hololive Japan 38886890.4 ALL
Korone Ch.Korone Hololive Japan 44731483.4 ALL
Aqua Ch.Minato Akua Hololive Japan 45809937.8 ALL
Marine Ch.Schatzglocke Marine Hololive Japan 50261733.4 ALL
Kuzuha Channel Nijisanji Japan 51129800.4 ALL
Flare Ch.Shiranui Fackel Hololive Japan 54643720.4 ALL
Pekora Ch.Kaninchen Pekora Hololive Japan 64229276.1 ALL
Rushia Ch.Junba Rushia Hololive Japan 65885208.3 ALL
Coco Ch.Kiryu Coco Hololive Japan 92221894.7 ALL

Fremdwährungskurs

Der Fremdwährungskurs ist der Gesamtbetrag der Spacha-Fremdwährung / der Gesamtbetrag aller Spacha-Währungen.

Was ich fand

――Mr. Kagura hatte die höchste Auslandsquote des Gesamtbetrags.

Top 10 Distributoren von Spachas Fremdwährungskurs

ChannelName Foreign ForeignRate
Japanese HANJO! TV 181921.1 93910 0.6595
신유야 / Yuya Shin 【NIJISANJI KR】 107003.8 47060 0.6945
Aadya【NIJISANJI EN】 35494.7 11728 0.7516
채아라 / Ara Chae 【NIJISANJI KR】 298770.0 91438 0.7657
Moona Hoshinova hololive-ID 373024.2 76940 0.8290
Ayunda Risu Ch. hololive-ID 1065439.7 190670 0.8482
이시우 / Siu Lee 【NIJISANJI KR】 198800.0 26668 0.8817
KITSUNEKON 447854.0 58960 0.8837
위피 / Wiffy 【NIJISANJI KR】 42911.5 3500 0.9246
유루리 / Ruri Yu 【NIJISANJI KR】 7829.5 400 0.9514

Unter den Distributoren mit einer Gesamtmenge an Spacha von 1 Million Yen oder mehr sind die Top 10 Distributoren mit einem Fremdwährungskurs von Spacha

ChannelName Foreign ForeignRate
Kana Sukoya [Nijisanji] Kana Sukoya 2179453.4 15367825 0.1242
Suisei Channel 3675447.1 25509246 0.1259
Mel Channel Nachthimmel Mel Channel 364995.4 1847979 0.1649
Korone Ch.Korone 8400464.4 36331019 0.1878
Aqua Ch.Minato Akua 10832336.8 34977601 0.2365
Haato Channel Akai ist hinterher 4379706.3 11658443 0.2731
Choco Ch.Choco Heitsuki 1756487.1 4350998 0.2876
Towa Ch.Ewige Towa 6427437.7 13784228 0.3180
Matsuri Channel Summer Color Festival 9173428.3 18616230 0.3301
Kagura Mea/ KaguraMea 3249724.1 3817314 0.4598

Mit dem Büro

Was ich fand

Impressionen

―― Insgesamt ist der Wechselkurs im Vergleich zum japanischen Yen immer noch niedrig ―― Trotzdem ist hololive höher als andere. Werden die Gewinne in Übersee weiter wachsen? ―― Gibt es mehr Chancen, dass andere Büros davon betroffen sind? ――Ich freue mich auf das Wachstum der Märkte in Übersee. Insgesamt gab es eine Tendenz, dass eine große Anzahl von Spachas in großen Ankündigungs- und Geburtstagssendungen geworfen wurde. ――Was ist der mysteriöse hohe Fremdwährungskurs von Mea Kagura? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Ichibu von Python-Code

Die Aggregation entspricht fast dem Linkziel des vorherigen Artikels, und die Visualisierung wird weggelassen, da nur die Daten organisiert werden. .. ..

So erhalten Sie Spacha-Informationen

Weitere Informationen zu YouTube-Kommentardaten finden Sie in den folgenden Artikeln. https://zetta777.hatenablog.com/entry/2019/11/09/200816

Es scheint viele Arten von Renderern zu geben, aber um die Spacha-Menge zu erhalten, können Sie sie grob mit dem folgenden Code erhalten (ich habe sie nicht im Detail überprüft ...). Hier entspricht item dem Element unter addChatitemAction in der im obigen Link beschriebenen Struktur. Wir machen es lediglich möglich, die Informationen zur Spacha-Menge für jeden Renderer anzuzeigen. .. ..

#Nur Nachricht
if 'liveChatTextMessageRenderer' in item.keys():
    renderer_type = 'liveChatTextMessageRenderer'
    renderer = item[renderer_type]
#Nur Spacha
elif 'liveChatPaidMessageRenderer' in item.keys():
    renderer_type = 'liveChatPaidMessageRenderer'
    renderer = item[renderer_type]
#Sowohl Nachricht als auch Spacha(In manchen Fällen)
elif 'liveChatTickerPaidMessageItemRenderer' in item.keys():
    renderer_type = 'liveChatTickerPaidMessageItemRenderer'
    renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatPaidMessageRenderer']
#Neues Mitglied
elif 'liveChatMembershipItemRenderer' in item.keys():
    renderer_type = 'liveChatMembershipItemRenderer'
    renderer = item[renderer_type]
#Neues Mitglied(Ich kenne den Unterschied zu liveChatMembershipItemRenderer nicht, den ich nicht untersucht habe)
elif 'liveChatTickerSponsorItemRenderer' in item.keys():
    renderer_type = 'liveChatTickerSponsorItemRenderer'
    renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatMembershipItemRenderer']
#Ich weiß es nicht mehr
elif 'liveChatPaidStickerRenderer' in item.keys():
    renderer_type = 'liveChatPaidStickerRenderer'
    renderer = item[renderer_type]
#Ich weiß es nicht mehr
elif 'liveChatTickerPaidStickerItemRenderer' in item.keys():
    renderer_type = 'liveChatTickerPaidStickerItemRenderer'
    renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatPaidStickerRenderer']
#Ich weiß es nicht mehr
elif 'liveChatPlaceholderItemRenderer' in item.keys():
    renderer_type = 'liveChatPlaceholderItemRenderer'
    renderer = item[renderer_type]
#Ich weiß es nicht mehr
elif 'liveChatModeChangeMessageRenderer' in item.keys():
    renderer_type = 'liveChatModeChangeMessageRenderer'
    renderer = item[renderer_type]

purchaseAmountText = renderer['purchaseAmountText']['simpleText'] if 'purchaseAmountText' in renderer.keys() else ''

Gestapeltes Balkendiagramm

def plot_stacked_bar(df, ax, title):
    #Standardisierung
    for col in df.columns:
        df[col] /= df[col].sum()
    for i in range(len(df)):
        ax.bar(df.columns, df.iloc[i], bottom=df.iloc[:i].sum())
    ax.set_title(title)

Recommended Posts

Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
[TF] Ich habe versucht, das Lernergebnis mit Tensorboard zu visualisieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Python-Übung 100 Schläge Ich habe versucht, den Entscheidungsbaum von Kapitel 5 mit graphviz zu visualisieren
[Erste Datenwissenschaft ⑥] Ich habe versucht, den Marktpreis von Restaurants in Tokio zu visualisieren
Ich habe versucht, die Laufdaten des Rennspiels (Assetto Corsa) mit Plotly zu visualisieren
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, den Stromverbrauch meines Hauses mit Nature Remo E lite zu visualisieren
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, den Getränkepräferenzdatensatz durch Tensorzerlegung zu visualisieren.
Ich habe mir die Metainformationen von BigQuery angesehen und versucht, sie zu verwenden
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, Boeing die Geigenleistung durch Posenschätzung vorzustellen
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
[Verarbeitung natürlicher Sprache] Ich habe versucht, die Bemerkungen jedes Mitglieds in der Slack-Community zu visualisieren
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
[Python] Ich habe versucht, das Preisgeld von "ONE PIECE" über 100 Millionen Zeichen mit matplotlib zu visualisieren.
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Beispielnachrichten zur Geschäftsintegration in Amazon Transcribe zu übertragen
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich habe versucht, die Version 2020 mit 100 Sprachverarbeitung zu lösen [Kapitel 3: Reguläre Ausdrücke 25-29]
Ich habe versucht, die Bewegungen von Wiire-Playern automatisch mit Software zu extrahieren
Ich habe versucht, die logische Denkweise über Objektorientierung zusammenzufassen.
Ich habe versucht, die optimale Route des Traumlandes durch (Quanten-) Tempern zu finden
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen