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.
Python-Pandas Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
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.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.