Pandas DataFrame: Select the specified columns and rows from a given DataFrame
6. Selecting Specific Columns and Rows
Write a Pandas program to select the specified columns and rows from a given DataFrame.
Select 'name' and 'score' columns in rows 1, 3, 5, 6 from the following data frame.
Sample DataFrame:
exam_data = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
Sample Solution :
Python Code :
import pandas as pd
import numpy as np
exam_data = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(exam_data , index=labels)
print("Select specific columns and rows:")
print(df.iloc[[1, 3, 5, 6], [1, 3]])
Sample Output:
Select specific columns and rows: score qualify b 9.0 no d NaN no f 20.0 yes g 14.5 yes
Explanation:
The above code creates a Pandas DataFrame named 'df' containing information related to students' 'exam_data'
print(df.iloc[[1, 3, 5, 6], [1, 3]]):
- In the said code iloc() function is used to select specific rows and columns from the DataFrame based on their integer location.
- [[1, 3, 5, 6], [1, 3]] is used as the parameter to select the rows with index 1, 3, 5, and 6 and columns with index 1 and 3 from the DataFrame.
- The selected rows contain the information for the students with the index label b, d, f, and g.
- The selected columns contain the information for the columns ‘score’ and ‘qualify’.
- Finally print() function prints 4 rows and 2 columns.
For more Practice: Solve these Related Problems:
- Write a Pandas program to select specific columns ('name' and 'score') for rows with even-numbered indices only.
- Write a Pandas program to extract 'name' and 'score' columns for rows where the index is a vowel (assume index labels are letters).
- Write a Pandas program to select specific columns and then filter the DataFrame using a boolean mask on a different column.
- Write a Pandas program to select rows from a DataFrame by passing a list of index labels and then display only the 'name' and 'score' columns.
Go to:
Previous: Write a Pandas program to select the 'name' and 'score' columns from the following DataFrame.
Next: Write a Pandas program to select the rows where the number of attempts in the examination is greater than 2.
Python-Pandas Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.