Avec pandas pour extraire le noms des colonnes d'un tableau de données (DataFrame) on peut faire comme ceci (ref):
>>> DataFrame.columns
Exemple d'utilisation:
Lire un fichier cvs et créer un tableau de données (dataframe) avec panda
Soit le fichier cvs suivant train.csv (que l'on peut télécharger sur kaggle)
>>> import pandas as pd
>>> data = pd.read_csv('train.csv')
>>> data.head()
Id MSSubClass MSZoning LotFrontage LotArea Street Alley LotShape \
0 1 60 RL 65.0 8450 Pave NaN Reg
1 2 20 RL 80.0 9600 Pave NaN Reg
2 3 60 RL 68.0 11250 Pave NaN IR1
3 4 70 RL 60.0 9550 Pave NaN IR1
4 5 60 RL 84.0 14260 Pave NaN IR1
LandContour Utilities ... PoolArea PoolQC Fence MiscFeature MiscVal \
0 Lvl AllPub ... 0 NaN NaN NaN 0
1 Lvl AllPub ... 0 NaN NaN NaN 0
2 Lvl AllPub ... 0 NaN NaN NaN 0
3 Lvl AllPub ... 0 NaN NaN NaN 0
4 Lvl AllPub ... 0 NaN NaN NaN 0
MoSold YrSold SaleType SaleCondition SalePrice
0 2 2008 WD Normal 208500
1 5 2007 WD Normal 181500
2 9 2008 WD Normal 223500
3 2 2006 WD Abnorml 140000
4 12 2008 WD Normal 250000
[5 rows x 81 columns]
Extraire le noms des colonnes
Pour extraire le noms des colonnes de la dataframe on peut faire comme ceci:
>>> data.columns
exemple
>>> columns = data.columns
>>> 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')
>>> type(columns)
<class 'pandas.indexes.base.Index'>
>>> columns[5]
'Street'
Sélectionner une ou plusieurs colonnes
Connaissant le noms des colonnes, il est alors possible de sélectionner une colonne donnée ou plusieurs:
Exemple de comment sélectionner une colonne
>>> data['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, dtype: int64
Exemple de comment sélectionner deux colonnes
>>> data[['SalePrice','BldgType']]
SalePrice BldgType
0 208500 1Fam
1 181500 1Fam
2 223500 1Fam
3 140000 1Fam
4 250000 1Fam
5 143000 1Fam
6 307000 1Fam
7 200000 1Fam
8 129900 1Fam
9 118000 2fmCon
10 129500 1Fam
11 345000 1Fam
12 144000 1Fam
13 279500 1Fam
14 157000 1Fam
15 132000 1Fam
16 149000 1Fam
17 90000 Duplex
18 159000 1Fam
19 139000 1Fam
20 325300 1Fam
21 139400 1Fam
22 230000 1Fam
23 129900 TwnhsE
24 154000 1Fam
25 256300 1Fam
26 134800 1Fam
27 306000 1Fam
28 207500 1Fam
29 68500 1Fam
... ... ...
1430 192140 1Fam
1431 143750 TwnhsE
1432 64500 1Fam
1433 186500 1Fam
1434 160000 1Fam
1435 174000 1Fam
1436 120500 1Fam
1437 394617 1Fam
1438 149700 1Fam
1439 197000 1Fam
1440 191000 1Fam
1441 149300 TwnhsE
1442 310000 1Fam
1443 121000 1Fam
1444 179600 1Fam
1445 129000 1Fam
1446 157900 1Fam
1447 240000 1Fam
1448 112000 1Fam
1449 92000 Twnhs
1450 136000 Duplex
1451 287090 1Fam
1452 145000 TwnhsE
1453 84500 1Fam
1454 185000 1Fam
1455 175000 1Fam
1456 210000 1Fam
1457 266500 1Fam
1458 142125 1Fam
1459 147500 1Fam
[1460 rows x 2 columns]
Références
Liens | Site |
---|---|
columns | pandas |
How to get column names in Pandas dataframe | geeksforgeeks |
House Prices: Advanced Regression Techniques | kaggle |