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

Active 20 octobre 2019    /    Viewed 21311    /    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'],

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)


Liens Site
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
pandas restricting csv read to certain rows python-forum
Select specific CSV columns (Filtering) - Python/pandas stackoverflow

Card image cap

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!