Home » How to Select Columns by Name in Pandas (3 Examples)

How to Select Columns by Name in Pandas (3 Examples)

by Erma Khan

You can use the following methods to select columns by name in a pandas DataFrame:

Method 1: Select One Column by Name

df.loc[:, 'column1']

Method 2: Select Multiple Columns by Name

df.loc[:, ['column1', 'column3', 'column4']] 

Method 3: Select Columns in Range by Name

df.loc[:, 'column2':'column4'] 

The following examples show how to use each of these methods in practice with the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'mavs': [10, 12, 14, 15, 19, 22, 27],
                   'cavs': [18, 22, 19, 14, 14, 11, 20],
                   'hornets': [5, 7, 7, 9, 12, 9, 14],
                   'spurs': [10, 12, 14, 13, 13, 19, 22],
                   'nets': [10, 14, 25, 22, 25, 17, 12]})

#view DataFrame
print(df)

   mavs  cavs  hornets  spurs  nets
0    10    18        5     10    10
1    12    22        7     12    14
2    14    19        7     14    25
3    15    14        9     13    22
4    19    14       12     13    25
5    22    11        9     19    17
6    27    20       14     22    12

Example 1: Select One Column by Name

The following code shows how to select the ‘spurs’ column in the DataFrame:

#select column with name 'spurs'
df.loc[:, 'spurs']

0    10
1    12
2    14
3    13
4    13
5    19
6    22
Name: spurs, dtype: int64

Only the values from the ‘spurs’ column are returned.

Example 2: Select Multiple Columns by Name

The following code shows how to select the cavs, spurs, and nets columns in the DataFrame:

#select columns with names cavs, spurs, and nets
df.loc[:, ['cavs', 'spurs', 'nets']]

        cavs	spurs	nets
0	18	10	10
1	22	12	14
2	19	14	25
3	14	13	22
4	14	13	25
5	11	19	17
6	20	22	12

Only the values from the cavs, spurs, and nets columns are returned.

Example 3: Select Columns in Range by Name

The following code shows how to select all columns between the names ‘hornets’ and ‘nets’ in the DataFrame:

#select all columns between hornets and nets
df.loc[:, 'hornets':'nets']

        hornets	spurs	nets
0	5	10	10
1	7	12	14
2	7	14	25
3	9	13	22
4	12	13	25
5	9	19	17
6	14	22	12

All of the columns between the names ‘hornets’ and ‘nets’ are returned.

Additional Resources

The following tutorials explain how to perform other common tasks in pandas:

Pandas: How to Move Column to Front of DataFrame
Pandas: How to Check if Column Contains String
Pandas: How to Add Empty Column to DataFrame (3 Examples)

Related Posts