[PYTHON] Résumé de la grammaire fréquemment utilisée dans les pandas

Nous avons résumé les grammaires qui sont souvent utilisées dans la bibliothèque d'analyse de données Python "pandas".

2019-02-18 Mise à jour de la méthode d'agrandissement de l'affichage
2018-05-06 Reflect des commentaires (pd.set_option('display.width', 100))
2018-02-14 Correction de lien
2017-11-01 df.fillna(method='ffill')Correction de la description de
2017-06-09 Correction des liens rompus, etc.
2016-10-10 Exemples d'édition
2016-06-21 df.rolling, pd.date_range, pd.datetime, df.Ajouter un pivot, ajouter d'autres exemples

** Gestion des fichiers CSV **

** pd.read_csv ** (lecture)

De nombreuses options sont disponibles, vous pouvez donc charger autre chose que csv.

import pandas as pd

df = pd.read_csv('some.csv')

Exemple: lors de la lecture de plusieurs colonnes (date et hour) ensemble en tant qu'index de type datetime ( date_hour)

df = pd.read_csv('some.csv', parse_dates={'date_hour':['date', 'hour']}, index_col='date_hour')

Exemple: Lorsqu'un fichier contenant du japonais et «-» est traité comme des données manquantes

df = pd.read_csv('some.csv', encoding='Shift_JIS', na_values='--')

--Liste des options

option sens
index_col Nom de la colonne à indexer
parse_dates Nom de colonne à lire comme type datetime (liste ou dictionnaire)
date_parser parse_Fonction auto-conçue pour lire la colonne spécifiée par des dates
na_values Chaîne de caractères (liste) comme valeur manquante
encoding 'Shift_JIS'Tel
sep Délimiteur (' ': En cas d'espace)

--Référence: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html

** df.to_csv ** (écriture)

Il est très facile d'écrire dans un fichier csv. Il existe de nombreuses options.

df.to_csv('some2.csv')

Exemple: si vous n'avez pas besoin d'index

df.to_csv('some2.csv', index=None)

Exemple: lors de la dénomination de l'index

df.to_csv('some2.csv', index_label='date')

--Référence: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

** Traitement des valeurs manquantes **

** df.dropna ** (supprimé)

Supprimer la ligne (index) avec une valeur manquante (nan)

df = df.dropna()

Exemple: si une colonne particulière (temp ou depth) a une valeur manquante, supprimez cette ligne (Ignorer les valeurs manquantes autres que «temp» et «depth»)

df = df.dropna(subset=['temp','depth'])

** df.fillna ** (remplir)

Exemple: remplissez les espaces avec une constante (0)

df = df.fillna(0)

Exemple: Remplissage du trou avant (arrière) (2017 / 11/01 Corrigé pour refléter le commentaire de @ hadacchi)

df = df.fillna(method='ffill')  #avant de remplir le blanc nan 1.0 nan -> nan 1.0 1.0 (forward  =Direction d'augmentation de l'index = direction descendante DataFrame)
df = df.fillna(method='bfill')  #remplissage arrière nan 1.0 nan -> 1.0 1.0 nan (backward =Direction décroissante de l'index = DataFrame vers le haut)

--Référence: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html

** df.interpolate ** (interpoler)

De nombreuses méthodes d'interpolation sont disponibles.

df = df.interpolate(method='index')

--Référence: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.interpolate.html

** df.resample ** (rééchantillonnage)

Modifiez la résolution (fréquence) des données de séries chronologiques. Quand je l'utilise, je réduis souvent le nombre de données, donc je le reconnais comme une fonction de compression.

Exemple: convertir les données horaires en moyenne quotidienne (ignorer les valeurs manquantes et la moyenne)

#daily = hourly.resample('D', how='mean') <-Ancienne façon d'écrire
daily = hourly.resample('D').mean()

Exemple: si la valeur est placée à 00:00, mais que vous voulez qu'elle soit à 12:00

daily = hourly.resample('D', loffset='12H').mean()

** Format de l'heure **

Charactor sens Remarques
M Mois 0.5M で半Moisとはならない
D journée Je fais quelque chose avec 15D
H temps 12H は12temps
T or min Minutes 30min で30Minutes

** df.rolling ** (moyenne mobile)

Prenez la moyenne mobile à n termes, la valeur maximale, etc.

Exemple: moyenne mobile à 3 termes (centre = Vrai et placez la valeur au centre (2ème terme dans ce cas))

ma3 = hourly.rolling(3, center=True).mean()

** Gestion du temps **

pd.date_range

Créez facilement des variables datetime consécutives

date = pd.date_range('2012-1-1', '2012-1-2', freq='D')

Exemple: puisque ce qui précède est l'horodatage des pandas, lors du retour à la variable datetime de python

date = pd.date_range('2012-1-1', '2012-1-2', freq='D').to_pydatetime()

pd.datetime

ʻImport datetime` non nécessaire

date = pd.datetime(2012, 1, 1, 0, 0, 0)

** Autres fonctions fréquemment utilisées **

** df.describe ** (statistiques récapitulatives)

Jetez un coup d'œil aux statistiques telles que le nombre de données dans chaque colonne, la moyenne et la variance.

print df.describe()

** df.groupby ** (agrégé)

Les données peuvent être manipulées facilement en les regroupant par colonne (conversion de la valeur de la colonne pour qu'elle puisse être traitée comme un index). Il est plus facile à comprendre que d'empiler et de désempiler.

Exemple: Groupez par plusieurs colonnes ("type" et "time") et prenez la moyenne de chaque groupe.

grouped_mean = df.groupby(['type','time']).mean()

--Référence: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html

df.pivot(1D→2D)

Image de la transformation d'un tableau unidimensionnel en un tableau bidimensionnel

temp2d = df.pivot(index='y', columns='x', values='temp')

Autres conseils

Création de DataFrame (type dictionnaire)

Si vous souhaitez créer un DataFrame à partir de quelque chose d'autre qu'un fichier, créez un dictionnaire et chargez-le.

data = {'a':[0, 1], 'b':[2, 3]}

df = pd.DataFrame(data)

Exemple: lors de l'indexation de l'exemple ci-dessus

date = pd.date_range('2012-1-1', '2012-1-2', freq='D')

df = pd.DataFrame(data, index=date)

Extension de la largeur d'emballage lors de l'impression

Si vous ne souhaitez pas que l'affichage soit enveloppé lors de l'impression d'un bloc de données avec un grand nombre de colonnes, vous pouvez modifier la largeur d'affichage.

pd.set_option('display.width', 100)
or
pd.set_option('display.max_columns', 100)  #Peut être contrôlé par le nombre de colonnes

#pd.set_option('line_width', 100)  # line_la largeur est obsolète ou supprimée (2018/05/06 Thanks to @dhwty)

print df  #Ne comprend pas jusqu'à 100 caractères (ou colonne)

Lien de référence

Recommended Posts

Résumé de la grammaire fréquemment utilisée dans les pandas
Résumé des méthodes fréquemment utilisées chez les pandas
Traitement des mémos souvent utilisés dans les pandas (débutants)
Résumé de ce qui a été utilisé dans 100 coups de Pandas (# 1 ~ # 32)
Paramètres souvent utilisés dans Jupyter
Résumé des processus souvent effectués par Pandas 2 (référence des données, opération d'édition)
J'ai essayé de résumer le code souvent utilisé dans Pandas
Résumé de l'installation souvent utilisé pour les projets d'IA
Résumé des commandes fréquemment utilisées dans matplotlib
Commandes liées au disque souvent utilisées dans Ubuntu (Notes)
résumé grammatical de blockdiag
Résumé des processus souvent effectués par Pandas 1 (CSV, opérations liées aux fichiers Excel)
Résumé des outils utilisés dans la ligne de commande vol.8
Résumé des outils utilisés dans la ligne de commande vol.5
Résumé des fonctions d'évaluation utilisées dans l'apprentissage automatique
Code souvent utilisé dans les applications Python / Django [préfectures]
Collection de conseils Numpy, Pandas souvent utilisés sur le terrain
Résumé des notes personnelles des pandas
Apprenez les pandas en 10 minutes
Une collection de code souvent utilisée dans Python personnel
UnicodeDecodeError dans pandas read_csv
Récapitulatif des méthodes Pandas utilisées lors de l'extraction de données [Python]
J'ai essayé de résumer les commandes souvent utilisées en entreprise
Résumé de l'écriture des fichiers .proto utilisés dans gRPC
pandas Matplotlib Résumé par utilisation
Nouveautés de Python 3.10 (Résumé)
Minuterie utilisée dans la boucle while
Résumé récent de l'étude des pandas python
Utilisé en EDA pour l'apprentissage automatique
Résumé de la détection de visage en Python
Commandes fréquemment utilisées dans virtualenv
Résumé de l'utilisation de base de Pandas
Nouveautés de Python 3.9 (Résumé)
Permuter les colonnes dans les trames de données pandas
Résumé de l'entrée standard de Python pouvant être utilisée dans Competition Pro