Hallo. Ich schreibe den ersten Entwurf, während ich Shisha rauche. Es ist gedämpft. Es ist ungefähr 3 Monate her, seit ich bei Qiita gepostet habe. lange nicht gesehen.
Chata Weißt du? Ich bin ein entspannter Sänger, aber seit ich "Dango Big Family" gesungen habe, haben Sie es vielleicht gehört, auch wenn Sie den Namen nicht kannten. Ein Bekannter hat eine Musikdatenbank für Herrn Chata erstellt, und ich konnte die Daten abrufen, daher möchte ich sie mit Pandas analysieren.
Es ist keine Analyse, aber die CDs mit Mr. Chatas Songs sind nach Erscheinungsdatum tabellarisch aufgeführt. Ich werde zwei Methoden ausprobieren, eine einfache Methode mit Seaborns * Count Plot * und eine leicht umlaufende Methode, die nach Jahr und Monat aggregiert und dann mit * Bar Plot * ausgegeben wird.
Verwendet von CD organisierte Daten. Es besteht aus "CD-Name", "Kreisname 1", "Kreisname 2", "Veröffentlichungsdatum", "Hauptetikett", "Bemerkungen" und wird im CSV-Format gespeichert.
Ubuntu 16.04 Python 3.5.2 :: Anaconda custom (64-bit)
Lass uns anfangen.
#coding:utf-8
import csv
import pandas as pd
import seaborn as sns
if __name__ == "__main__":
#Lesen Sie CSV
dfCD = pd.read_csv("ChataData_CD.csv")
#Veröffentlichungsdatum
releaseYear = []
#Holen Sie sich das Veröffentlichungsdatum, indem Sie den CSV-Speicherdatenrahmen drehen
# i:Zeilenname, row:series(Zeilenwert)
for i,row in dfCD.iterrows():
ymd = str(row['ReleaseYmd'])
#Schneiden Sie das Veröffentlichungsdatum, um es zum Veröffentlichungsdatum zu machen
releaseYear.append(ymd[0:4])
#Fügen Sie die Liste der Veröffentlichungsdaten in den Datenrahmen ein
chataCD = pd.DataFrame({'year':releaseYear})
#Stellen Sie die japanische Schriftart in seaborn ein
sns.set(font='TakaoPGothic')
*** iterrows *** dreht den Datenrahmen mit den Originaldaten, um das Veröffentlichungsdatum der CD zu erhalten. *** iterrows *** ist eine Methode, die ein Tupel dreht, das aus ** Zeilenname ** und ** Zeilenwert ** besteht. Ist es ein Bild des vertikalen Drehens des Datenrahmens? (Referenz: http://sinhrks.hatenablog.com/entry/2015/06/18/221747) Da es als Veröffentlichungsdatum im Datensatz registriert ist, schneiden Sie es so, dass es zu "JJJJM" wird, und fügen Sie es in die Liste ein.
Verwenden Sie pd.DataFrame ({** Label Name **: *** Series ***}), um eine Liste der Veröffentlichungsdaten in den Datenrahmen einzufügen. Serie ist eine eindimensionale Liste. Zuerst habe ich versucht, das Veröffentlichungsdatum (Zeichenfolge) hinzuzufügen, während ich die Originaldaten gedreht habe, und bin fehlgeschlagen.
Stellen Sie die japanische Schriftart in Seaborn ein und Sie können loslegen. Hier wird TakaoPGothic angegeben. Ich habe mich auf Folgendes bezogen, um japanische Schriftarten anzugeben. [Seaborn] Japanisch anzeigen (Schriftart ändern)
Lassen Sie es uns mit Seaborn visualisieren. Beginnen wir mit einer einfachen Methode.
fig = sns.countplot(x='year',data=chataCD,palette='Greens_r').get_figure()
fig.suptitle('Änderungen in der Anzahl der CD-Veröffentlichungen von Chata-sans Songs(2000-2016)')
sns.plt.savefig('countByYear_simple.png')
*** Countplot *** ist eine Methode, die X-Achsen- oder Y-Achsen-Daten zählt. Dies ist einfach, da Sie nur einen Datenrahmen übergeben müssen, der das Veröffentlichungsdatum jeder CD enthält. [Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 2] (http://qiita.com/hik0107/items/7233ca334b2a5e1ca924) *** Palette *** gibt die Farbpalette an. So wählen Sie die Seaborn-Farbpalette aus war hilfreich. Das Folgende ist das Ausgabediagramm.
Als nächstes folgt eine Umleitungsmethode. Es wird länger dauern, aber dies ist eher eine Studie über Pandas.
#Finden Sie die Anzahl der Veröffentlichungen nach Jahr und Monat
yrCount = chataCD['year'].value_counts(ascending=True).sort_index()
year = []
count = []
for row in yrCount.iteritems():
year.append(row[0])
count.append(row[1])
dfCount = pd.DataFrame({'year':year,'count':count})
barplot = sns.barplot(x='year',y='count',data=dfCount,palette='Greens_r').get_figure()
barplot.suptitle('Änderungen in der Anzahl der CD-Veröffentlichungen von Chata-sans Songs(2000-2016)')
sns.plt.savefig('countByYear.png')
Für diejenigen, die einen Umweg machen, erstellen wir einen Datenrahmen mit zwei Datentypen, dem Veröffentlichungsdatum und der Anzahl der Veröffentlichungen. Aggregieren Sie zunächst die Anzahl der Elemente mit ** DataFrame.value_counts **.
** DataFrame.value_counts ** gibt * Series * zurück. In diesem Fall ist * index * das Jahr und der Monat und * values * die Anzahl der Blätter. Erstellen Sie eine Liste mit jedem Veröffentlichungsdatum und jeder Anzahl von Veröffentlichungen und geben Sie dort den Wert ein. *** iteritems *** dreht einen Taple, der aus * index * und * values * besteht. Fügen Sie also * row [0] * zum Veröffentlichungsdatum und * row [1] * zur Anzahl der Veröffentlichungen hinzu.
Nachdem aus der Liste des Veröffentlichungsdatums und der Anzahl der Veröffentlichungen ein Datenrahmen erstellt wurde, wird dieser mit Seaborn visualisiert. Verwenden Sie *** Balkendiagramm ***, um ein sogenanntes Balkendiagramm zu zeichnen.
Wenn ich Seaborn importiere und ausführe, wird die folgende Warnung angezeigt, aber ich habe Probleme, die Ursache zu verstehen ...
/.pyenv/versions/anaconda3-4.1.0/lib/python3.5/site-packages/PIL/Image.py:85: RuntimeWarning: The _imaging extension was built for another version of Pillow or PIL
warnings.warn(str(v), RuntimeWarning)
Ich würde mich freuen, wenn Sie mir die Ursache in den Kommentaren mitteilen könnten.