[PYTHON] Représentez graphiquement l'évolution du nombre d'apparitions de mots clés par mois à l'aide de pandas

supposition

(Identique à précédent) Voici le fichier Excel. Il est sorti d'un certain DB, et chaque ligne contient un enregistrement et un champ contient des phrases. Chaque ligne a également un champ d'information de date. Le thème cette fois est d'extraire le mot-clé spécifié du texte de ce champ et de tracer la façon dont le nombre d'apparitions change d'un mois à l'autre. L'entrée et la sortie sont des fichiers Windows Excel, et le milieu se fait sur Mac.

La conversion de code de caractère et la conversion Excel sont les mêmes que la dernière fois, elles sont donc omises.

Préparation

Laissez df lire csv par pd.read (). MeCab requis

def group_by_month(df):
	e = df['comment']	#Spécifiez un champ avec du texte
	e.index = pd.to_datetime(df['datetime'])	#Spécifiez les informations de date dans l'index
	m = MeCab.Tagger('-Ochasen')	#Mettez la sortie en mode Chasen

	result_df = None
	for k, v in e.iteritems():
		if type(v) != unicode:
			continue
		target_dic = {		#Spécifiez le mot-clé cible
			'XXX'			: 0,
			'YYY'			: 0,
			'ZZZ'			: 0,
		}
		s8 = v.encode('utf-8')
		node = m.parseToNode(s8)
		while node:
			word=node.feature.split(',')[0]
			key = node.surface
			if key in target_dic:
				target_dic[key] += 1	#Augmentez le nombre si trouvé
			node = node.next
		if result_df is None:
			result_df = pd.DataFrame(target_dic, index=[k])
		else:
			result_df = result_df.append(pd.DataFrame(target_dic, index=[k]))
	#Regroupement mensuel
	result_df['index1'] = result_df.index
	result_df = result_df.groupby(pd.Grouper(key='index1', freq='M')).sum()
	#Cela ne semble pas fonctionner avec l'index, alors mettez-le dans la colonne
	return result_df

Chaque fois, le dictionnaire est vidé, le nombre d'occurrences est compté et il est converti en DataFrame et ajouté. Je pense que cela pourrait être simplifié, mais je ne sais pas comment faire.

À ce stade, les données suivantes sont stockées dans result_df.

            XXX YYY ZZZ
index1                
2014-06-30   0   1   0
2014-07-31   0   6   0
2014-08-31   3  19   6
2014-09-30   1   8   0
2014-10-31   5  29   7
2014-11-30  10   8   0
2014-12-31  10  31   8
2015-01-31  12  41  15
2015-02-28  45  82  22
2015-03-31  21  58   9
2015-04-30  23  60  19
2015-05-31   4  36   3
2015-06-30  11  40   8
2015-07-31  13  49  11
2015-08-31   8  14   2
2015-09-30  13  13   9
2015-10-31   5  31   9
2015-11-30  11  21   3
2015-12-31  12  21   3
2016-01-31   2  19   0
2016-02-29  12  15   5
2016-03-31   9  32   7
2016-04-30   2  22   4
2016-05-31   6  24   2
2016-06-30   7  21   4
2016-07-31   9  22   4
2016-08-31   5  21   1
2016-09-30   7  31   6
2016-10-31   0  12   1

terrain

'''
Préparez la zone graphique
'''
def plot_init(title):
	fig = plt.figure()
	ax = fig.add_subplot(1,1,1)
	ax.set_title(title)
	return fig, ax

'''
Terrain
'''
def plot_count_of_day(df):
	title = 'test_data'
	fig, ax = plot_init(title)
	for c in df.columns:
		df[c].plot(label=c, ax=ax)
	ax.legend()
	ax.set(xlabel='month', ylabel='count')

résultat

Comme ça.

test_data.png

fin.

Recommended Posts

Représentez graphiquement l'évolution du nombre d'apparitions de mots clés par mois à l'aide de pandas
Graphique de l'historique du nombre de couches de deep learning et du changement de précision
Générez une liste contenant le nombre de jours du mois en cours.
Sortie du nombre de cœurs de processeur en Python
Changer la taille de police de la légende dans df.plot
Déterminez le nombre de classes à l'aide de la formule Starges
[Python] Représentation du nombre de plaintes des compagnies d'assurance-vie dans un graphique à barres
Concept de raisonnement bayésien (3) ... Calcul des points de changement dans le nombre d'emails reçus par PyMC3
Comment obtenir le nombre de chiffres en Python
Comptez le nombre de paramètres dans le modèle d'apprentissage en profondeur
Omettre les graduations du graphique après la virgule décimale dans matplotlib
Obtenir la taille (nombre d'éléments) de Union Find en Python
[En 3 lignes] Tracez la pyramide des âges (graphique à barres du groupe d'âge / sexe) avec les pandas seuls
VisibleDeprecation Avertissement: l'utilisation d'un nombre non entier au lieu d'un entier entraînera une erreur dans le futur
Comment trouver le nombre optimal de clusters pour les k-moyennes
Maya | Découvrez le nombre de polygones dans l'objet sélectionné
Examiner la plage d'erreur dans le nombre de décès dus à la pneumonie
Avoir le graphique d'équation de la fonction linéaire dessiné en Python
Comptez le nombre de caractères dans le texte dans le presse-papiers sur Mac
Obtenez le nombre d'éléments spécifiques dans la liste python
Python --Trouvez le nombre de groupes dans l'expression regex
[Homologie] Comptez le nombre de trous dans les données avec Python
Modifier la période de conservation des journaux CloudWatch Logs dans Lambda
[Baies non paramétriques] Estimation du nombre de clusters à l'aide du processus Diricle
Obtenez le nombre d'occurrences pour chaque élément de la liste
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Nombre maximum de caractères dans l'appel shell Python3 (par OS)
10. Compter le nombre de lignes
Obtenez le nombre de chiffres
Calculez le nombre de changements
Changer le thème de Jupyter
Changer le style de matplotlib
Composants liés du graphique
Le pouvoir des pandas: Python
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Comment changer la couleur du seul bouton pressé avec Tkinter
[Python] Réduisons le nombre d'éléments dans le résultat dans le fonctionnement de l'ensemble
N'hésitez pas à changer l'étiquette de légende avec Seaborn en python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
Bases de Seaborn pour les débutants ① Graphique agrégé du nombre de données (Countplot)
Utilisation de TensorFlow dans l'environnement de développement intégré Cloud 9 - Principes d'utilisation -
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python