Comment lire un fichier de données csv en python avec pandas ?

20 octobre 2019    /    Viewed: 6124    /    Comments: 0    /    Edit


Exemple de comment lire un fichier de données csv avec pandas :

Lire un fichier csv

Soit par exemple le fichier csv suivant train.csv (que l'on peut télécharger sur kaggle). Pour lire le fichier il existe la fonction pandas read_csv():

>>> import pandas as pd
>>> data = pd.read_csv('train.csv')

Obtenir les dimensions du tableau de données:

>>> data.shape
(1460, 81)

Obtenir le noms des colonnes:

>>> data.columns
Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',
       'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',
       'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',
       'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',
       'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',
       'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',
       'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',
       'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',
       'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',
       'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',
       'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',
       'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',
       'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',
       'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',
       'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',
       'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',
       'SaleCondition', 'SalePrice'],
      dtype='object')

Sélectionner certaines colonnes

Option 1:

On peut utiliser l'option usecols pour sélectionner certaines colonnes du fichier csv:

>>> data = pd.read_csv('train.csv',usecols=[1,2,3])
>>> data.shape
(1460, 3)
>>> data.columns
Index(['MSSubClass', 'MSZoning', 'LotFrontage'], dtype='object')

Option 2:

On peut aussi lire le fichier csv et ensuite sélectionner certaines colonnes

>>> data = pd.read_csv('train.csv')
>>> data_sample = data[['SalePrice','BldgType']]
>>> data_sample.shape
(1460, 2)

Sauter des lignes du fichier cvs

On peut aussi sauter des lignes en utilisant l'option skiprows. Exemples:

Sauter la première ligne du fichier

>>> data = pd.read_csv('train.csv',skiprows=1)
>>> data.shape
(1459, 81)

Sauter les 5 premières lignes du fichier

>>> data = pd.read_csv('train.csv',skiprows=5)
>>> data.shape
(1455, 81)

On peut aussi supprimer des lignes en démarrant en bas du fichier avec l'option "skipfooter".

>>> data = pd.read_csv('train.csv',skipfooter=10, engine='python')
>>> data.shape
(1450, 81)

Références

Liens Site
read_csv pandas.pydata.org
pandas.DataFrame.head pandas.pydata.org
How to select several rows when reading a csv file using pandas? stackoverflow
Pandas : skip rows while reading csv file to a Dataframe using read_csv() in Python thispointer.com
pandas restricting csv read to certain rows python-forum
Select specific CSV columns (Filtering) - Python/pandas stackoverflow


Card image cap
profile-image
Daidalos

Je développe le présent site avec le framework python Django. Je m'intéresse aussi actuellement dans le cadre de mon travail au machine learning pour plusieurs projets (voir par exemple) et toutes suggestions ou commentaires sont les bienvenus !