[PYTHON] Première étape de l'analyse des données (nombre de données, affichage du tableau, valeurs manquantes)

La première étape de l'analyse des données, de l'attente et du prétraitement des données Données provenant des prix des logements: Advanced Regression Techniques, un concours d'étude Kaggle, est utilisé. Données de la maison Le thème est de prédire le prix à partir de maintenant. House Prices: Advanced Regression Techniques

Vérifiez le contenu des données

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns

Vérifiez quel type de données est inclus

!ls ../input/house-prices-advanced-regression-techniques

↓↓↓

data_description.txt  sample_submission.csv  test.csv  train.csv

train.csv correspond aux données d'entraînement test.csv correspond aux données à tester Un exemple de sample_submission.csv vous demandant de soumettre une réponse comme celle-ci data_description.txt est une description de chaque colonne

Ensuite, lisez chaque fichier csv comme pandas.DataFrame avec pd.read_csv

TEST_PATH = "../input/house-prices-advanced-regression-techniques/test.csv"
TRAIN_PATH = "../input/house-prices-advanced-regression-techniques/train.csv"
SUBMISSION_PATH = "../input/house-prices-advanced-regression-techniques/sample_submission.csv"

test_data = pd.read_csv(TEST_PATH)
train_data = pd.read_csv(TRAIN_PATH)
sample_submission = pd.read_csv(SUBMISSION_PATH)

Jetons un coup d'œil au contenu des données d'entraînement. Les 5 premiers éléments du tableau sont affichés ci-dessous

train_data.head()

↓↓↓


	Id	MSSubClass	MSZoning	LotFrontage	LotArea	Street	Alley	LotShape	...	MiscFeature	MiscVal	MoSold	YrSold	SaleType	SaleCondition	SalePrice
0	1	60	        RL	        65.0	    8450	Pave	NaN  	Reg	        ... NaN	        0	    2	    2008	WD	        Normal	        208500
1	2	20	        RL	        80.0	    9600	Pave	NaN	    Reg	        ... NaN	        0	    5	    2007	WD	        Normal	        181500
2	3	60	        RL	        68.0	    11250	Pave	NaN 	IR1	        ... NaN	        0	    9	    2008	WD	        Normal	        223500
3	4	70	        RL	        60.0	    9550	Pave	NaN 	IR1	        ... NaN	        0	    2	    2006	WD	        Abnorml	        140000
4	5	60	        RL	        84.0	    14260	Pave	NaN 	IR1	        ... NaN	        0	    12	    2008	WD	        Normal	        250000
5 rows × 81 columns

Il semble y avoir 81 colonnes. plein. À propos, le prix de vente est absent des données de test. Le thème est d'anticiper le prix de vente.

Eh bien, je n'ai vérifié que les 5 premiers cas, mais combien y en a-t-il au total?

print(len(train_data), len(test_data))
1460 1459

Eh bien, vous pouvez voir que les données d'entraînement sont composées de 1460 lignes et 81 colonnes.

Confirmation des valeurs manquantes

Vous pouvez maintenant saisir le nombre de données. En regardant le tableau ci-dessus, certaines valeurs manquantes (NaN et blancs) sont dispersées. Vérifions également le nombre total de valeurs manquantes.

ʻIsnull () détermine s'il y a une valeur manquante (retourne en tant que type booléen, c'est-à-dire True False), Calculez le nombre total de valeurs manquantes avec sum () as True = 1`` False = 0. Cela signifie le processus de comptage des valeurs non manquantes avec count ()`.


total = train_data.isnull().sum().sort_values(ascending=False)
percent = (train_data.isnull().sum()/train_data.isnull().count()).sort_values(ascending=False)
missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
missing_data.head(20)

↓↓↓


	         Total	Percent
PoolQC	     1453	0.995205
MiscFeature	 1406	0.963014
Alley	     1369	0.937671
Fence	     1179	0.807534
FireplaceQu	 690	0.472603
LotFrontage	 259	0.177397
GarageCond	 81	    0.055479
GarageType	 81	    0.055479
GarageYrBlt	 81	    0.055479
GarageFinish 81 	0.055479
GarageQual	 81 	0.055479
BsmtExposure 38 	0.026027
BsmtFinType2 38 	0.026027
BsmtFinType1 37 	0.025342
BsmtCond	 37 	0.025342
BsmtQual	 37 	0.025342
MasVnrArea	 8  	0.005479
MasVnrType	 8  	0.005479
Electrical	 1  	0.000685
Utilities	 0  	0.000000

Désormais, une action possible pour les valeurs manquantes consiste à incorporer les valeurs manquantes avec quelque chose de différent ou à supprimer les lignes ou les colonnes contenant les valeurs manquantes. Par exemple, si vous regardez la ligne supérieure de PoolQC, le pourcentage de valeurs manquantes est de 99%, supprimons donc la colonne comme suit.

train_data = train_data.drop('PoolQC',axis=1)

Si vous vérifiez la valeur manquante comme avant pour voir si elle disparaît vraiment


	         Total	Percent
MiscFeature	 1406	0.963014
Alley	     1369	0.937671
Fence	     1179	0.807534
FireplaceQu	 690	0.472603
LotFrontage	 259	0.177397
GarageCond	 81	    0.055479
GarageType	 81	    0.055479
GarageYrBlt	 81	    0.055479
GarageFinish 81 	0.055479
GarageQual	 81 	0.055479
BsmtExposure 38 	0.026027
BsmtFinType2 38 	0.026027
BsmtFinType1 37 	0.025342
BsmtCond	 37 	0.025342
BsmtQual	 37 	0.025342
MasVnrArea	 8  	0.005479
MasVnrType	 8  	0.005479
Electrical	 1  	0.000685
Utilities	 0  	0.000000

Certes, la ligne du haut a disparu. Maintenant, jetons un coup d'œil non seulement à la trame de données, mais également au graphique. (J'ai importé matplotlib.pyplot et seaborn pour cela.)

Ça fait longtemps, donc la prochaine fois!

Recommended Posts

Première étape de l'analyse des données (nombre de données, affichage du tableau, valeurs manquantes)
Première analyse de données satellitaires par Tellus
Recommandation d'analyse des données à l'aide de MessagePack
Analyse des séries chronologiques 3 Prétraitement des données des séries chronologiques
Traitement des données 2 Analyse de divers formats de données
[Python] Première analyse de données / apprentissage automatique (Kaggle)
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Une introduction à l'analyse de données à l'aide de Python - Pour augmenter le nombre de vues vidéo -
La première étape de l'analyse du journal (comment formater et mettre les données du journal dans Pandas)