[PYTHON] Essayez les opérations de base sur Pandas DataFrame sur Jupyter Notebook

Jusqu'à présent, la manipulation de données avec Pandas en Python était une position que vous devriez simplement rechercher sur Google pour savoir comment l'utiliser lorsque vous en avez besoin, mais lorsque vous étudiez l'analyse de données et l'apprentissage automatique, vous pouvez utiliser Jupyter Notebook pour extraire des données. Je sens que je ne peux pas parler si je ne peux pas le faire fonctionner, alors je commence à me réorganiser et à étudier comment utiliser Pandas à partir des bases. Cet article est la note d'étude.

Le contenu de cet article est en cours de test dans l'environnement Jupyter Notebook préparé selon le lien ci-dessous. Installation et démarrage faciles de Jupyter Notebook à l'aide de Docker (prend également en charge nbextensions et Scala) --Qiita

Dans cet environnement, vous pouvez accéder au port 8888 avec un navigateur et utiliser Jupyter Notebook. Vous pouvez ouvrir une nouvelle note en suivant Nouveau> Python 3 sur le bouton en haut à droite.

Présentation de DataFrame

Un Pandas DataFrame est une image de données tabulaires avec des lignes et des colonnes. Les lignes peuvent être numérotées en commençant par 0, mais il semble qu'elles puissent être des chaînes. Les colonnes ont les noms des colonnes.

Alors que DataFrame est tabulaire, il existe également un objet de colonne uniquement appelé Series.

Les articles suivants ont été très utiles pour le contenu de DataFrame et Series. Mes images pandas.Series et DataFrame étaient fausses-Qiita

Importation de packages Python

import pandas as pd

Lire à partir d'un fichier CSV

#S'il y a un en-tête
df = pd.read_csv("data.csv")
#La ligne d'en-tête devient le nom de la colonne

#S'il n'y a pas d'en-tête
df = pd.read_csv("data.csv", header=None)
#Les nombres commençant par 0 deviennent des noms de colonnes

#Si vous souhaitez spécifier un nom de colonne sans en-tête
df = pd.read_csv("data.csv", names=["id", "target", "data1", "data2", "data3"])

À partir de cet article, les fichiers CSV créés avec des nombres aléatoires appropriés https://github.com/suzuki-navi/sample-data/blob/master/sample-data-1.csv J'utilise.

(GitHub formate et affiche également les fichiers CSV)

Vérifiez le contenu des données

Vous pouvez facilement vérifier le contenu de l'objet DataFrame sur le bloc-notes Jupyter.

image.png

Si vous ne voulez voir qu'une partie des données

#5 premières lignes
df.head()

#3 premières lignes
df.head(3)
# or
df[:3]

#5 dernières lignes
df.tail()

#3 dernières lignes
df.tail(3)

#Extraire uniquement les 11e à 20e lignes
# (L'index commençant de 0 est de 10 à 19)
df[10:20]

#Extrait de la 11ème ligne jusqu'à la fin
# (L'index commençant par 0 est derrière 10)
df[10:]

#Vérifiez uniquement la ligne 11
# (10 pour les index à partir de 0)
df.loc[10]

#Extraire uniquement des colonnes spécifiques
df[["target", "data1"]]

#Extraire uniquement des colonnes spécifiques
#Devenez une série au lieu d'un DataFrame
df["data1"]
# df[["data1"]]Différent de

#Extraire uniquement des colonnes spécifiques dans une plage de lignes spécifique
df[["target", "data1"]][10:20]
# or
df[10:20][["target", "data1"]]

Même si vous n'extrayez que quelques lignes, l'index attaché aux lignes est conservé.

image.png

Vérifiez le format des données

df.shape
# => (300, 5)

df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')

df.dtypes
# => id          int64
#    target      int64
#    data1     float64
#    data2     float64
#    data3     float64
#    dtype: object

Calculer sur des colonnes

Vous pouvez effectuer des opérations sur les colonnes.

df [" data1 "] est Series, mais si vous l'écrivez comme df [" data1 "] / 100, il calculera / 100 pour chaque élément de Series et obtiendra le résultat dans Series. Je peux le faire.

image.png

Vous pouvez également effectuer des opérations entre les colonnes.

df["data1"] + df["data2"]

Extraire les lignes de manière conditionnelle

# df["data1"] >=Générer un DataFrame composé uniquement de lignes où 0 est True
#L'index de ligne est conservé, il devient donc un nombre discret
df[df["data1"] >= 0]

#Vous pouvez également interroger comme SQL
df.query('data1 >= 30 and target == 1')

#Si vous souhaitez mettre une chaîne dans la requête""Entourez de
df.query('target == "1"')

Obtenez une liste de valeurs avec suppression des doublons

df["target"].unique()
# => array([3, 2, 1])

Obtenez des statistiques sur une colonne de nombres

df.describe()

image.png

Trier

Ce qui suit renvoie un DataFrame avec des lignes triées par colonne «data1».

#ordre croissant de la colonne data1
df.sort_values("data1")

#ordre décroissant de la colonne data1
df.sort_values("data1", ascending=False)

#Trier par plusieurs colonnes
df.sort_values(["target", "data1"], ascending=False)

Comment puis-je rendre le premier tri "cible" décroissant et le second tri "data1" croissant?

Ajouter une colonne

Dans l'exemple suivant, une nouvelle colonne de valeur qui a été calculée sur une colonne existante est ajoutée à l'extrémité droite.

df["data_sum"] = df["data1"] + df["data2"] + df["data3"]

image.png

c'est tout.

Recommended Posts

Essayez les opérations de base sur Pandas DataFrame sur Jupyter Notebook
Essayez d'exécuter Jupyter Notebook sur Mac
Essayez SVM avec scikit-learn sur Jupyter Notebook
Opérations de base et touches de raccourci de Jupyter Notebook
Essayez Apache Spark avec Jupyter Notebook (sur Docker local
Touche de raccourci pour le bloc-notes Jupyter
Essayez d'utiliser Jupyter Notebook de manière dynamique
Graphiques élevés dans le notebook Jupyter
Afficher le PDF sur Jupyter Notebook
Commandes de base pour les opérations sur les fichiers
Exécutez Jupyter Notebook sous Windows
Essayez le clustering avec un modèle gaussien mixte sur Jupyter Notebook
Formatage avec autopep8 sur le notebook Jupyter
Pandas / DataFrame Conseils pour une utilisation pratique
Paramètres d'extrait de code pour le notebook jupyter python
Jupyter Notebook indispensable au développement de logiciels
Analyse pratique avec Pandas + notebook Jupyter
Essayez de démarrer Jupyter Notebook ~ Formation Esper
Paramètres de lecture de fichiers S3 avec des pandas depuis Jupyter Notebook sur AWS
Extension Jupyter Notebook, paramètres nbextensions pour moi-même
Faire de Jupyter Notebook un service sur CentOS
Démarrez le notebook jupyter sur le serveur GPU (serveur distant)
Cloner le référentiel github sur le notebook Jupyter
Vérification du GPU du PC sur le notebook Jupyter
Afficher l'histogramme / diagramme de dispersion sur Jupyter Notebook
Construire un notebook jupyter sur un serveur distant (CentOS)
Utiliser les raccourcis clavier vim dans Jupyter Notebook lancé avec Docker
Exécuter le notebook Jupyter sur un serveur distant
Comment utiliser le bloc-notes Jupyter [super basique]
Une bibliothèque pour la science des données "Je veux faire ça" sur le bloc-notes Jupyter
Installer matplotlib et afficher le graphique dans Jupyter Notebook
Essayez le modèle d'espace d'état (Jupyter Notebook + noyau IR)
[Jupyter Notebook / Lab] Trois méthodes de débogage sur Jupyter [Pdb]
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Activer Jupyter Notebook avec conda sur un serveur distant
Essayez d'utiliser l'environnement virtuel conda avec Jupyter Notebook
[Pythonocc] J'ai essayé d'utiliser la CAO sur un notebook Jupyter
Affichage simple du graphique linéaire sur Jupyter Notebook
[Python / Chrome] Paramètres de base et opérations de scraping
(Remarque) Statistiques de base sur Python et Pandas sur IBM DSX
Notebook Jupyter ouvert à distance lancé sur le serveur
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Fonctionnement de base de Python Pandas Series et Dataframe (1)
jupyter notebook ne commence pas par fish sur mac