How to extract one or several columns of data in a pandas dataframe ?

Published: October 29, 2019

DMCA.com Protection Status

Exemple de comment sélectionner une ou des colonnes de données dans une DataFrame avec pandas ?

Créer une DataFrame avec Pandas

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
>>> df = pd.read_csv('train.csv')
>>> df.shape
(1460, 81)

Obtenir le noms des colonnes

>>> df.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 une colonne de données

>>> df['SalePrice']
0       208500
1       181500
2       223500
3       140000
4       250000
5       143000
6       307000
7       200000
8       129900
9       118000
10      129500
11      345000
12      144000
13      279500
14      157000
15      132000
16      149000
17       90000
18      159000
19      139000
20      325300
21      139400
22      230000
23      129900
24      154000
25      256300
26      134800
27      306000
28      207500
29       68500
         ...  
1430    192140
1431    143750
1432     64500
1433    186500
1434    160000
1435    174000
1436    120500
1437    394617
1438    149700
1439    197000
1440    191000
1441    149300
1442    310000
1443    121000
1444    179600
1445    129000
1446    157900
1447    240000
1448    112000
1449     92000
1450    136000
1451    287090
1452    145000
1453     84500
1454    185000
1455    175000
1456    210000
1457    266500
1458    142125
1459    147500
Name: SalePrice, Length: 1460, dtype: int64

Sélectionner plusieurs colonnes de données

>>> mycolumns = ['GrLivArea','SalePrice'] 
>>> df[mycolumns]
      GrLivArea  SalePrice
0          1710     208500
1          1262     181500
2          1786     223500
3          1717     140000
4          2198     250000
5          1362     143000
6          1694     307000
7          2090     200000
8          1774     129900
9          1077     118000
10         1040     129500
11         2324     345000
12          912     144000
13         1494     279500
14         1253     157000
15          854     132000
16         1004     149000
17         1296      90000
18         1114     159000
19         1339     139000
20         2376     325300
21         1108     139400
22         1795     230000
23         1060     129900
24         1060     154000
25         1600     256300
26          900     134800
27         1704     306000
28         1600     207500
29          520      68500
...         ...        ...
1430       1838     192140
1431        958     143750
1432        968      64500
1433       1792     186500
1434       1126     160000
1435       1537     174000
1436        864     120500
1437       1932     394617
1438       1236     149700
1439       1725     197000
1440       2555     191000
1441        848     149300
1442       2007     310000
1443        952     121000
1444       1422     179600
1445        913     129000
1446       1188     157900
1447       2090     240000
1448       1346     112000
1449        630      92000
1450       1792     136000
1451       1578     287090
1452       1072     145000
1453       1140      84500
1454       1221     185000
1455       1647     175000
1456       2073     210000
1457       2340     266500
1458       1078     142125
1459       1256     147500

[1460 rows x 2 columns]

References