Bonjour. J'écris la première ébauche en fumant Shisha. C'est étouffé. Cela fait environ 3 mois que j'ai posté sur Qiita. ça fait longtemps.
Chata Le savez-vous? Je suis une chanteuse décontractée, mais depuis que je chantais "Dango Big Family", vous l'avez peut-être entendu même si vous ne connaissiez pas le nom. Une connaissance a créé une base de données musicale pour M. Chata, et j'ai pu obtenir les données, donc j'aimerais l'analyser à l'aide de pandas.
Ce n'est pas une analyse, mais les CD contenant les chansons de M. Chata sont classés par date de sortie. Je vais essayer deux méthodes, une méthode simple utilisant le * count plot * de Seaborn et une méthode légèrement détour qui agrège par année et par mois, puis produit avec * bar plot *.
Utilise des données organisées par CD. Il se compose de "Nom du CD", "Nom du cercle 1", "Nom du cercle 2", "Date de sortie", "Indicateur d'étiquette principale", "Remarques" et est enregistré au format csv.
Ubuntu 16.04 Python 3.5.2 :: Anaconda custom (64-bit)
Commençons.
#coding:utf-8
import csv
import pandas as pd
import seaborn as sns
if __name__ == "__main__":
#Lire CSV
dfCD = pd.read_csv("ChataData_CD.csv")
#Date de sortie
releaseYear = []
#Obtenez la date de sortie en tournant le cadre de données de stockage CSV
# i:Nom de la ligne, row:series(Valeur de ligne)
for i,row in dfCD.iterrows():
ymd = str(row['ReleaseYmd'])
#Découpez la date de sortie pour en faire la date de sortie
releaseYear.append(ymd[0:4])
#Mettre la liste des dates de sortie dans le bloc de données
chataCD = pd.DataFrame({'year':releaseYear})
#Définir la police japonaise dans seaborn
sns.set(font='TakaoPGothic')
*** iterrows *** tourne la trame de données contenant les données originales pour obtenir la date de sortie du CD. *** iterrows *** est une méthode qui transforme un tuple composé de ** nom de ligne ** et ** valeur de ligne **. Est-ce une image de rotation verticale du bloc de données? (Référence: http://sinhrks.hatenablog.com/entry/2015/06/18/221747) Puisqu'il est enregistré comme date de sortie dans l'ensemble de données, découpez-le pour qu'il devienne "aaaamm" et mettez-le dans la liste.
Utilisez pd.DataFrame ({** nom du libellé **: *** Series ***}) pour mettre une liste des dates de sortie dans le bloc de données. La série est une liste unidimensionnelle. Au début, j'ai essayé d'ajouter la date de sortie (chaîne de caractères) tout en tournant les données d'origine et j'ai échoué.
Définissez la police japonaise dans Seaborn et vous êtes prêt à partir. Ici, TakaoPGothic est spécifié. Je me suis référé à ce qui suit pour spécifier les polices japonaises. [Seaborn] Afficher le japonais (changer la police)
Visualisons-le en utilisant Seaborn. Commençons par une méthode simple.
fig = sns.countplot(x='year',data=chataCD,palette='Greens_r').get_figure()
fig.suptitle('Changements dans le nombre de sorties CD des chansons de Chata-san(2000-2016)')
sns.plt.savefig('countByYear_simple.png')
*** countplot *** est une méthode qui compte les données de l'axe X ou Y. C'est facile car il suffit de passer une trame de données contenant la date de sortie de chaque CD. [Un superbe dessin graphique avec python -seaborn facilite l'analyse et la visualisation des données Partie 2] (http://qiita.com/hik0107/items/7233ca334b2a5e1ca924) *** palette *** spécifie la palette de couleurs. Comment choisir la palette de couleurs Seaborn a été utile. Ce qui suit est le graphique de sortie.
Vient ensuite une méthode légèrement détour. Cela prendra plus de temps, mais il s'agit plus probablement d'une étude sur les pandas.
#Trouvez le nombre de sorties par année et par mois
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('Changements dans le nombre de sorties CD des chansons de Chata-san(2000-2016)')
sns.plt.savefig('countByYear.png')
Pour ceux qui font un détour, nous allons créer une base de données qui contient deux types de données, la date de sortie et le nombre de versions. Tout d'abord, utilisez ** DataFrame.value_counts ** pour compter le nombre d'éléments.
** DataFrame.value_counts ** renvoie * Series *. Dans ce cas, * index * est l'année et le mois, et * values * est le nombre de feuilles. Faites une liste de chaque date de sortie et nombre de versions, et entrez la valeur là-bas. *** iteritems *** transforme un taple composé de * index * et * values *, donc ajoutez * row [0] * à la date de sortie et * row [1] * au nombre de versions.
Après avoir créé un bloc de données à partir de la liste des dates de sortie et du nombre de versions, il est visualisé avec Seaborn. Utilisez *** barplot *** pour dessiner un soi-disant graphique à barres.
Lorsque j'importe et lance Seaborn, j'obtiens l'avertissement suivant, mais j'ai du mal à comprendre la cause ...
/.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)
Je vous serais reconnaissant si vous pouviez me dire la cause dans les commentaires.
Recommended Posts