[Python] pandas à bien comprendre en 10 minutes

Pandas en 10 minutes

introduction

Cet article est une copie et une explication du tutoriel officiel sur les pandas "10 minutes aux pandas"

Je me réfère à l'URL suivante https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

environnement

Importer pour le moment

import numpy as np
import pandas as pd
np
pd

OK si chaque module est affiché comme ci-dessous スクリーンショット 2020-01-25 11.51.03.png

Si une erreur survient

** ModuleNotFoundError: Aucun module nommé "pandas" ** Si vous vous mettez en colère, mettez les pandas en premier.


---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-59ab05e21164> in <module>
      1 import numpy as np
----> 2 import pandas as pd

ModuleNotFoundError: No module named 'pandas'

commander python -m pip install pandas


1. Créez un objet

Vous pouvez facilement créer des données en mettant une liste dans la classe Series. ..


#Facile à aligner
s = pd.Series(data=[1, 3, 5, np.nan, 6, 8])
s
スクリーンショット 2020-01-25 12.05.34.png

Vous pouvez utiliser date_range () pour créer une ligne avec une date pour une période de temps spécifique.


#Données pour 6 jours à compter du 1er janvier 2020
dates = pd.date_range("20200101", periods=6)
dates
スクリーンショット 2020-01-25 12.14.36.png

[DataFrame] des pandas (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html#pandas-dataframe) En spécifiant la classe ** argument index **, la ligne Vous pouvez spécifier l'index.

#Spécifiez les données du 1er janvier 2020 pour l'index des lignes
#Entrez un nombre aléatoire pour chaque valeur
df = pd.DataFrame(np.random.randn(6, 4), index=dates)
df
スクリーンショット 2020-01-25 12.20.49.png

Aussi, de la classe DataFrame Vous pouvez définir les noms de colonne en spécifiant les ** colonnes d'argument **.

#Définir le nom de la colonne ABCD
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
df
スクリーンショット 2020-01-25 13.54.51.png

En passant des données de type dictionnaire à la classe DataFrame, la partie clé du type dictionnaire devient le nom de la colonne.

df2 = pd.DataFrame(
    {
        "A": 1.,
        "B": pd.Timestamp("20200101"),
        "C": pd.Series(1, index=list(range(4)), dtype="float32"),
        "D": np.array([3] * 4, dtype="int32"),
        "E": pd.Categorical(["test", "train", "test", "train"]),
        "F": "foo",
    }
)
df2
スクリーンショット 2020-01-25 14.08.34.png

Vous pouvez voir les attributs de données de chaque colonne en vous référant à ** l'attribut dtypes **.

df2.dtypes
スクリーンショット 2020-01-25 14.10.58.png

Si vous utilisez Jupyter nootbook ou Jupyter Lab, les noms des colonnes seront affichés dans la complétion de l'onglet.

db2.<TAB>
スクリーンショット 2020-01-25 14.13.28.png

2. Afficher les données

Données à l'aide de la [méthode head ()] de la classe DataFrame (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html#pandas.DataFrame.head) Vous pouvez afficher le début.

df.head(2)
スクリーンショット 2020-01-25 14.21.33.png

De même, en utilisant tail () de la classe DataFrame, Vous pouvez afficher la queue.

df.tail(2)
スクリーンショット 2020-01-25 14.35.10.png

En faisant référence à ** index ** de la classe DataFrame Vous pouvez afficher l'index de ligne de ces données.

df.index
df2.index
スクリーンショット 2020-01-25 14.36.33.png

Données à l'aide de la classe DataFrame to_numpy () Peut être converti en données faciles à utiliser avec numpy.

df.to_numpy()
df2.to_numpy()
スクリーンショット 2020-01-25 15.25.48.png

Utilisez la classe DataFrame Référence: DataFrame.describe () Vous pouvez obtenir une statistique rapide pour chaque colonne de données.

df2.describe()
スクリーンショット 2020-01-25 15.44.36.png

Si vous faites référence à l '[attribut T] de la classe DataFrame (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.T.html#pandas-dataframe-t), les données échangées par matrice Vous pouvez y accéder.

df.T
スクリーンショット 2020-01-25 15.48.59.png

De plus, dans la classe DataFrame transpose (), la même matrice est remplacée. Peut être obtenu.

df.transpose()
スクリーンショット 2020-01-25 16.00.49.png

En utilisant la classe DataFrame sort_index () , Vous pouvez trier la ligne ou la colonne entière.

df.sort_index()
スクリーンショット 2020-01-25 16.10.23.png

** Définissez l'argument axis ** sur 0 ou "index" pour trier par ligne, définissez 1 ou "colonnes" pour trier par axe (valeur par défaut 0). De plus, si False est spécifié dans ** l'argument croissant **, l'ordre sera dans l'ordre décroissant (valeur par défaut True).


df.sort_index(axis=0, ascending=False)
df.sort_index(axis=1, ascending=False)
スクリーンショット 2020-01-25 16.12.40.png

En utilisant la classe DataFrame sort_values () Vous pouvez trier par ligne ou colonne.

df.sort_values(by="B")
df.sort_values(by="2020-01-01", axis=1)
スクリーンショット 2020-01-25 16.45.17.png

(Ajouté le 07/03/2020)

3. Sélectionnez les données

Acquisition de données simple

Vous pouvez obtenir la ligne spécifiée en définissant ** df ["A"] ** ou ** df.A **.

df["A"]
df.A

image.png

Si spécifié dans la liste ** [] **, vous pouvez sélectionner des colonnes et des lignes avec des opérations de tranche Python.

#Affichage des 4 premières colonnes
df[0:3]

image.png

Vous pouvez également obtenir la plage de réindexation.


#Affichage du 2 janvier 2020 au 4 janvier 2020
df['20200102':'20200104'] 

image.png

Sélectionnez les données en spécifiant un libellé

Index (dates dans ce cas) à loc () de la classe DataFrame Vous pouvez sélectionner une ligne comme colonne en spécifiant).


df.loc[dates]
df.loc[dates[0]]

image.png

Sélectionnez plusieurs colonnes à l'aide de loc () peut faire.


df.loc[:, ["A", "B"]]

image.png

Il semble qu'une erreur se produira s'il n'y a pas de deux points de début.

image.png

loc () Plusieurs lignes et multiples en combinant des opérations de tranche Vous pouvez sélectionner des colonnes.

df.loc['20200102':'20200104', ['A', 'B']]

image.png

Données uniques en spécifiant un index dans loc () Peut obtenir

df.loc[dates[0], 'A']

image.png

Vous pouvez obtenir des données uniques plus rapidement en utilisant at ().

df.at[dates[0], 'A']

image.png

Sélectionner les données par position

Sélectionnez les données en spécifiant une valeur numérique à l'aide de iloc () de la classe DataFrame. Vous pouvez.

df.iloc[3]
df.iloc[3:5, 0:2]
df.iloc[[1, 2, 4], [0, 2]]

image.png

Slice (:) avec la position de début et la position de fin omises dans l'argument de iloc () de la classe DataFrame. Vous pouvez obtenir toutes les lignes ou colonnes spécifiques en spécifiant (uniquement)

df.iloc[1:3, :]
df.iloc[:, 1:3]

image.png

Données uniques en spécifiant uniquement une valeur numérique comme argument dans iloc () de la classe DataFrame Tu peux choisir

df.iloc[1, 1]

image.png

Comme at (), [iat ()](https: //pandas.pydata) .org / pandas-docs / stable / reference / api / pandas.DataFrame.iat.html) Vous pouvez obtenir des données uniques plus rapidement en utilisant

df.at[dates[0], 'A']

image.png

Sélection des données par jugement de condition

(Je suis épuisé ici. Le reste ... n'est-ce pas? 10 minutes c'est: réfléchir :)

4. Données manquantes 5. Opérations 6. Merge 7. Regroupement 8. Reconstruire 9. Série chronologique 10. Catégoriser 11. Plot 12. Données d'entrée et de sortie 13. Pièges

Recommended Posts

[Python] pandas à bien comprendre en 10 minutes
Ajouter une série à la colonne dans les pandas python
Apprenez les pandas en 10 minutes
Comprendre en 10 minutes le sélénium
Même les débutants veulent dire "Je comprends parfaitement Python"
Pour vider stdout en Python
Essayez de comprendre Python soi
Connectez-vous au site Web en Python
Super Primer to python - Premiers pas avec python3.5 en 3 minutes
Parler avec Python [synthèse vocale]
J'ai essayé de résumer comment utiliser les pandas de python
Comment développer en Python
Je comprends Python en japonais!
Publier sur Slack en Python
Compagnon de science des données en python, comment spécifier des éléments dans les pandas
[Python] Comment faire PCA avec Python
Convertir Markdown en PDF en Python
[Python] Comment utiliser la série Pandas
Comment collecter des images en Python
Comment utiliser SQLite en Python
Dans la commande python, python pointe vers python3.8
Essayez de calculer Trace en Python
[Introduction à Python] Utilisons les pandas
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
6 façons d'enchaîner des objets en Python
Comment utiliser PubChem avec Python
[Introduction à Python] Utilisons les pandas
[Introduction à Python] Utilisons les pandas
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
J'ai essayé d'implémenter PLSA en Python
[Python] Résumé de l'utilisation des pandas
[Introduction à Python] Comment utiliser la classe en Python?
Essayez de vous connecter à qiita avec Python
[Python] Utilisez des pandas pour extraire △△ qui maximise ○○
Installez Pyaudio pour lire des vagues en python
J'ai essayé d'implémenter la permutation en Python
Méthode pour créer un environnement Python dans Xcode 6
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Épingler le répertoire actuel au répertoire de script en Python
[Itertools.permutations] Comment créer une séquence en Python
PUT gzip directement dans S3 en Python
Envoyer des e-mails à plusieurs destinataires avec Python (Python3)
Convertir un fichier psd en png en Python
Exemple de script pour piéger les signaux en Python
Decorator pour éviter UnicodeEncodeError dans Python 3 print ()
Comment utiliser BigQuery en Python
Connectez-vous à Slack à l'aide de requêtes en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Un moyen simple d'utiliser Wikipedia avec Python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
J'ai essayé d'implémenter ADALINE en Python
Lancer le Webhook entrant vers Mattermost en Python
Module pour générer le mot N-gramme en Python
Pour référencer des variables d'environnement en Python dans Blender