Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)

Je suis nouveau sur Python. En ce qui concerne les opérations sur les trames de données dans Pandas, bien qu'il existe de nombreux articles sur l'explication des opérations uniquement, j'ai senti qu'il n'y avait pas d'article expliquant les points et les objectifs du prétraitement. J'ai décidé de le créer comme mémo d'apprentissage.

Lecteur supposé

--Python débutant ∋ I

Ce que vous pouvez faire après avoir lu cet article

supposition

――Le code de cet article est écrit après avoir écrit ce qui suit. Veuillez remplacer df par votre trame de données, le cas échéant. ―― Imaginez les données des passagers du Titanic, qui sont souvent utilisées dans le contenu d'introduction des statistiques, mais les données qui en sortent sont la fiction pour créer cet article.

import pandas as pd
df = pd.read_csv("hogehoge/test.csv", usecols = ['PassengerId','Sex','Age'], header = 1)

Article principal I | Vue d'ensemble des données

1. Confirmation visuelle

#conduire/Énumérez les deux dernières lignes. Spécifiez le nombre de lignes que vous souhaitez archiver 2(Si omis, 6 est spécifié)
print(df.head(2))
print(df.tail(2))
print("Nom de colonne:",df.columns)
print("Nom de la ligne(index):"df.index)

"""
S'affiche comme ↓:
# head
   PassengerId     Sex   Age
0            1  female  23.0
1            2    male  48.0

# tail
     PassengerId     Sex   Age
998          999  female  41.0
999         1000    male  15.0

Nom de la colonne: Index(['PassengerId', 'Sex', 'Age'], dtype='object')

Nom de la ligne: RangeIndex(start=0, stop=1000, step=1)

"""

2. Confirmer le type de données

--Utilisez l'attribut dtypes --Attribute-> Joindre `` .hoge``` après le bloc de données comme une méthode --Objet: selon la bibliothèque utilisée, le calcul avec des types de données mixtes peut provoquer une erreur, donc supprimez-le plus tard (décrit plus loin).

print(df.dtypes)

"""
Il sera affiché comme ci-dessous
PassengerId      int64
Sex             object
Age            float64
"""

À partir de ce résultat, je pense que vous pouvez créer les problèmes suivants, par exemple: ―― 1) Le sexe est stocké sous forme de chaîne de caractères, par exemple homme ou femme. N'est-il pas préférable d'ajouter une valeur fictive telle que 0/1 à utiliser dans le calcul? ―― 2) Age est float (type à virgule flottante), tandis que PassengerId est int (type entier). Les deux sont utilisés pour le calcul, et il serait préférable de les unifier à l'un ou l'autre.

3. Confirmation et remplacement de la valeur manquante (NaN)

--Utilisez une combinaison de méthode isnull et de toute méthode à exclure ―― En les combinant, vous pouvez détecter "une colonne contenant au moins un NaN".

print(df.isnull().any())

"""
Le résultat sera affiché comme ci-dessous
PassengerId    False
Sex            False
Age             True
dtype: bool

"""

«La suggestion à partir d'ici est que" NaN existe dans la colonne Age, il semble donc possible de le supprimer. "

4. Confirmation des statistiques de base

print(df.describe())
"""
       PassengerId         Age
count  1000.000000  884.000000
mean    446.000000   29.699118
std     257.353842   14.526497
min       1.000000    3.100000
25%     215.500000   20.125000
50%     430.000000   27.000000
75%     703.500000   39.000000
max    1000.000000   80.000000
"""

--Suggestions obtenues: --Bien que l'âge minimum soit de 3,1, il semble que l'âge soit enregistré sous la forme d'un entier (bien qu'il s'agisse d'un type à virgule flottante) comme confirmé par head / tail. N'est-ce pas 3.1 une erreur de 31 acquéreurs de données? Une confirmation est requise. ――Faites attention à lire les statistiques

Article principal II | Effectuer le traitement de base

1. Gérer les valeurs manquantes

――Dans ce cas, par exemple, "Définissons NaN de l'âge à 0. Lors du calcul de la valeur moyenne de l'âge dans le futur, analysons des valeurs autres que 0" et convertissons NaN en 0. --Dans loc, extrayez "toutes les colonnes Age de la ligne où la valeur de la colonne Age est NaN" (bien que le japonais soit compliqué) et remplacez 0

#Effectuez une conversion sur la colonne où la présence de NaN a été confirmée dans le chapitre précédent.
df.loc[df['Age'].isnull(), 'Age'] = 0

#Vérifiez si le processus s'est déroulé correctement
print(df.isnull().any())

"""
Il sera affiché comme suit. Comparer avec le chapitre précédent c.
PassengerId    False
Sex            False
Age            False
dtype: bool
"""

2. Unifier les types de données et les types de données

#Changement de type PassengerId
df.PassengerId = df.PassengerId.astype('float64')

#Attribution de valeur factice de sexe(0 pour homme et 1 pour femme) &float64
df.Sex[df.Sex=='male'] = 0
df.Sex[df.Sex=='female'] = 1
df.Sex = df.Sex.astype('float64')

#Vérifiez si le processus s'est déroulé correctement
print(df.dtypes)

"""
Ça devrait ressembler à ça:
PassengerId    float64
Sex            float64
Age            float64

"""

en conclusion

référence

Recommended Posts

Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
Pandas 100 coups pour les débutants en Python
[Python] Résumé de la méthode de création de table utilisant DataFrame (pandas)
[Python] Mémo d'opération de pandas DataFrame
Lien récapitulatif des bases de Pandas pour les débutants
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Résumé de diverses instructions for en Python
Pandas du débutant, par le débutant, pour le débutant [Python]
Résumé des techniques utiles de Scrapy en Python
Pandas Python: recherchez DataFrame à l'aide d'expressions régulières
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Résumé des tableaux Python fréquemment utilisés (pour moi-même)
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
Histoire de base de l'héritage en Python (pour les débutants)
Fonctionnement de base de Python Pandas Series et Dataframe (1)
Manuel python pour les débutants
Résumé des arguments Python
OpenCV pour les débutants en Python
Application Python: Pandas # 3: Dataframe
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Résumé du tri Python (liste, type de dictionnaire, série, DataFrame)
Récapitulatif des paramètres d'environnement Python pour moi-même [mac] [ubuntu]
Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
Récapitulatif des méthodes Pandas utilisées lors de l'extraction de données [Python]
Résumé des opérations de liste Python3
Flux d'apprentissage pour les débutants en Python
Construction de l'environnement Python3 (pour les débutants)
Vue d'ensemble de Docker (pour les débutants)
Python #function 2 pour les super débutants
Résumé récent de l'étude des pandas python
Grammaire de base Python pour les débutants
Résumé de l'utilisation de base de Pandas
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Extraire uniquement Python pour le prétraitement
Le pouvoir des pandas: Python
[Pour les débutants] Les bases de Python expliquées par Java Gold Part 2
Conversion de Pandas DataFrame en System.Data.DataTable à l'aide de Python pour .NET
■ Kaggle Practice pour les débutants - Introduction de Python - par Google Colaboratory
Résumé de la prise en charge des opérations de hachage (dictionnaire) pour Ruby et Python
Principes de base de Pandas pour les débutants ④ Gestion des éléments de date et d'heure
Un résumé de l'apprentissage automatique Python pour débutant est très concis.
[Python] Les principales faiblesses et inconvénients de Google Colaboratory [Pour les débutants]
[Pour les débutants] Un résumé en mots des langages de programmation populaires (version 2018)
[Pour les débutants] Les bases de Python expliquées par Java Gold Part 1
Résumé du livre électronique Python utile pour l'analyse de données gratuite
Meilleures pratiques pour manipuler les données avec les pandas
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
Jeu à la main Python (Pandas / DataFrame début)
Principes de base de Pandas pour les débutants ① Lecture et traitement
Pandas / DataFrame Conseils pour une utilisation pratique
[Apprentissage automatique Python] Recommandation d'utilisation de Spyder pour les débutants (à partir d'août 2020)
Un bref résumé de Graphviz en python (expliqué uniquement pour mac)
Principes de base de Pandas pour les débutants ⑧ Traitement des chiffres
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Python pour les super débutants Super débutants Python # dictionnaire type 1
Un bref résumé de la collection Python
Résumé de l'apprentissage automatique par les débutants de Python
Qu'est-ce que le grattage? [Résumé pour les débutants]