[PYTHON] Lisez CSV et analysez avec Pandas et Seaborn

L'analyse des données est devenue populaire ces jours-ci, je vais donc essayer de l'analyser en montrant un échantillon du code.

le code

L'environnement d'exécution sera Python3.

Dans cet article, nous ferons ce qui suit:

--Lire CSV --Conversion de colonne simple --Agréger et dessiner à partir de différentes perspectives

Utilisez «Seaborn» pour dessiner.

Seaborn: statistical data visualization

Données à utiliser

Les données à analyser sont les suivantes.

target.csv


datetime, id, value
20170606121314, 1,2
20170606121315, 1,3
20170606121316, 1,4
20170608121616, 1,4
20170608121617, 1,1
20170608121618, 1,2
20170606121540, 2,10
20170606121541, 2,8
20170606121542, 2,11
20170608121543, 2,4
20170606134002, 3,21
20170606134003, 3,10
20170606134004, 3,4
20170608134005, 3,50

datetime est une chaîne d'année, de mois, de jour, d'heure, de minute et de seconde. On suppose également qu'une certaine «valeur» se produit toutes les secondes pendant une certaine période pendant plusieurs secondes pour chaque identifiant.

Travail analytique avec Python

Lire le fichier csv

python


import pandas as pd

#Lecture CSV
df = pd.read_csv("target.csv",sep=",")
df.columns = ["datetime","id","value"]

Comme méthode pour vérifier s'il a été lu

df.head()

Ce sera. Ensuite, la sortie sera la suivante.

datetime id value
0 20170606121314 1 2
1 20170606121315 1 3
2 20170606121316 1 4
3 20170608121616 1 4
4 20170608121617 1 1

La méthode head () est une méthode qui affiche les 5 premières lignes de données et est souvent utilisée pour vérifier le contenu des données.

Il existe également une méthode appelée tail (), qui affiche 5 lignes de données à partir de la fin des données. Le résultat de l'affichage est le suivant.

datetime id value
9 2017-06-08 12:15:43 2 4
10 2017-06-06 13:40:02 3 21
11 2017-06-06 13:40:03 3 10
12 2017-06-06 13:40:04 3 4
13 2017-06-08 13:40:05 3 50

De plus, dans la ligne suivante, la colonne est définie dans le dataframe.

python


df.columns = ["datetime","id","value"]

colonne datetime de la chaîne à datetime

python


from datetime import datetime as dt

df.datetime = df.datetime.apply(lambda d: dt.strptime(str(d), "%Y%m%d%H%M%S"))

Le but de cette opération est de faciliter l'utilisation de la colonne de date. Ce que nous faisons, c'est accéder à la valeur de chaque ligne de la colonne datetime avec df.datetime et analyser la chaîne avec la méthode strptime. Cela permet aux valeurs qui étaient à l'origine des chaînes d'être converties en types de date et d'heure.

Agréger par ID et voir le nombre d'enregistrements

python


df_by_id= df.groupby("id")["value"].count().reset_index()
df_by_id

groupby (" id ") agrège les enregistrements par valeur dans la colonne id. Le nombre d'enregistrements par id est compté par count ().

Le contenu de df_byid est le suivant.

id value
0 1 6
1 2 4
2 3 4

Dessinez un histogramme avec le nombre d'enregistrements sur l'axe horizontal

python


import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
id_df = pd.DataFrame(df_by_id)
sns.distplot(id_df.value, kde=False, rug=False, axlabel="record_count",bins=10)

Nous utilisons une bibliothèque appelée «seaborn» qui dessine de belles figures.

スクリーンショット 2017-06-25 21.31.56.png

Agréger par ID et voir le total des colonnes de valeur

python


df_value_sum= df.groupby("id")["value"].sum().reset_index()

La partie qui est count () ci-dessus est juste sum ().

Le contenu de df_value_sum est le suivant.

id value
0 1 16
1 2 33
2 3 85

Agréger par ID et obtenir l'heure à laquelle les données se sont produites pour la première fois

python


start_datetime_by_id = df.groupby(["id"])["datetime"].first().reset_index()
df_date = pd.DataFrame(start_datetime_by_id)

Le contenu de df_date est le suivant.

id datetime
0 1 2017-06-06 12:13:14
1 2 2017-06-06 12:15:40
2 3 2017-06-06 13:40:02

Afficher le nombre de données produites quel jour du mois avec la date comme axe horizontal

python


sns.distplot(date_df.datetime.dt.month, kde=False, rug=False, axlabel="record_generate_date",hist_kws={"range": [1,30]}, bins=30)

Avec l'option hist_kws = {" range ": [1,30]}, l'axe horizontal est dessiné dans la plage de 0-30. C'est à partir des données du 30 juin 2017 que les données se sont produites. C'est dans un souci de clarté.

スクリーンショット 2017-06-25 21.44.55.png

Recommended Posts

Lisez CSV et analysez avec Pandas et Seaborn
Lire csv avec des pandas python
Lire et écrire des fichiers csv avec numpy
Chargez CSV avec des pandas et jouez avec Index
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
Lire JSON avec Python et générer un CSV
Analysez les journaux d'accès Apache avec Pandas et Matplotlib
Lire et formater des fichiers csv mélangés avec des tabulations de virgule avec des pandas Python
Lire et écrire un fichier csv
[Python] Lire le csv japonais avec des pandas sans caractères déformés (extraire davantage les colonnes écrites en japonais)
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Lire et écrire du CSV avec Python
Ignorer # ligne et lire avec les pandas
Chargez csv avec des colonnes en double dans pandas
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Lire Python csv et exporter vers txt
Regrouper CSV et obtenir la valeur minimale (pandas)
Comment lire des fichiers CSV avec Pandas
J'ai lu le dictionnaire de synonymes Sudachi avec Pandas et essayé de rechercher des synonymes
Lisez le fichier CSV avec Python et convertissez-le en DataFrame tel quel
Comment lire un fichier CSV avec Python 2/3
Grattage de la nourriture avec python et sortie en CSV
[Introduction à Pandas] Lire un fichier csv sans nom de colonne et lui donner un nom de colonne
[Python] Comment lire des fichiers Excel avec des pandas
lecture de données pandas
Installez pip et pandas avec Ubuntu ou VScode
Visualisez de manière interactive les données avec Treasure Data, Pandas et Jupyter.
[Python3] Lecture et écriture avec isoformat datetime avec json
Exemple de lecture et d'écriture de CSV avec Python
Lisez le fichier csv avec le notebook jupyter et écrivez le graphique l'un sur l'autre
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
Lisez le fichier csv et affichez-le dans le navigateur
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Lire la liste de liens au format csv avec l'outil graphique
Comment extraire des valeurs Null et des valeurs non Null avec des pandas
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
[Python] Comment gérer l'erreur de lecture pandas read_html
Lire et écrire des fichiers avec Slackbot ~ Développement de bot avec Python ~
Créer un outil de formatage CSV avec Python Pandas Py Installer
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Lire le fichier json avec Python, le formater et générer le json
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Extraire la valeur maximale avec les pandas et modifier cette valeur
[Memo] Chargez le csv de s3 dans les pandas avec boto3
Traitement des ensembles de données avec des pandas (1)
Convertir 202003 en 2020-03 avec les pandas
Traitement des ensembles de données avec des pandas (2)
Fusionner les ensembles de données avec les pandas
installation de jupyter et pandas
Pandas apprenant avec la chimioinfomatique
Visualisation des données avec les pandas
Manipulation des données avec les Pandas!
pandas rééchantillonner et rouler
Moyenne et liste des pandas
Lire le fichier csv Python
Avec et sans WSGI
Créer un nouveau csv avec des pandas basé sur le csv local
Lisez la liste des URL avec Robot Framework et entourez les captures d'écran