Exploratory data analysis helps us understand data by looking at it in many ways. It shows patterns, problems, and important details before we do more work.
Exploratory data analysis workflow in Pandas
import pandas as pd df = pd.read_csv('file.csv') # Step 1: Look at data print(df.head()) # Step 2: Check data info print(df.info()) # Step 3: Summary statistics print(df.describe()) # Step 4: Check missing values print(df.isnull().sum()) # Step 5: Visualize data (example) df['column'].hist()
Use head() to see first rows and get a quick look.
info() shows data types and missing values.
df.head(10)df.describe(include='all')df.isnull().sum()df['age'].hist()This code creates a small table with some missing values. It then shows the first rows, data info, summary stats, missing values count, and draws a histogram for the age column.
import pandas as pd import matplotlib.pyplot as plt # Create a small sample dataset data = { 'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'age': [25, 30, 35, None, 40], 'salary': [50000, 60000, 70000, 80000, None] } df = pd.DataFrame(data) # Step 1: Look at first rows print('First rows:') print(df.head()) # Step 2: Data info print('\nData info:') df.info() # Step 3: Summary statistics print('\nSummary statistics:') print(df.describe()) # Step 4: Missing values print('\nMissing values per column:') print(df.isnull().sum()) # Step 5: Visualize age distribution print('\nShowing histogram for age column...') df['age'].hist() plt.title('Age Distribution') plt.xlabel('Age') plt.ylabel('Count') plt.show()
Always check for missing values early to decide how to handle them.
Use visualizations to see data shape and spot outliers easily.
Summary statistics help understand data spread and central values.
Exploratory data analysis helps you know your data well before using it.
Look at data samples, info, statistics, missing values, and charts step-by-step.
This process guides better decisions for cleaning and modeling data.
Practice
exploratory data analysis workflow?Solution
Step 1: Understand the initial data
Exploratory data analysis starts by looking at the first few rows to get a feel for the data structure and values.Step 2: Avoid premature actions
Jumping to modeling or removing missing data without understanding can cause mistakes.Final Answer:
Viewing the first few rows of the dataset -> Option AQuick Check:
First step = View data sample [OK]
- Starting with modeling before understanding data
- Removing missing values without checking their impact
- Ignoring data overview and jumping to conclusions
df?Solution
Step 1: Identify summary statistics function
df.describe()returns count, mean, std, min, max, and quartiles for numeric columns.Step 2: Differentiate other commands
df.head()shows first rows,df.info()shows data types, anddf.sample()shows random rows.Final Answer:
df.describe() -> Option CQuick Check:
Summary stats = df.describe() [OK]
- Using df.head() to get statistics
- Confusing df.info() with statistical summary
- Expecting df.sample() to summarize data
df below, what is the output of df.isnull().sum()?
import pandas as pd
data = {'A': [1, 2, None], 'B': [None, 2, 3], 'C': [1, 2, 3]}
df = pd.DataFrame(data)Solution
Step 1: Check missing values per column
Column 'A' has one None, 'B' has one None, 'C' has none.Step 2: Use isnull().sum() to count missing
This method counts missing values per column, so output is {'A': 1, 'B': 1, 'C': 0}.Final Answer:
{'A': 1, 'B': 1, 'C': 0} -> Option AQuick Check:
Missing counts = {'A':1,'B':1,'C':0} [OK]
- Counting total missing instead of per column
- Confusing None with zero or empty string
- Misreading which columns have missing values
df.info() but get an error: AttributeError: 'DataFrame' object has no attribute 'infoo'. What is the likely cause?Solution
Step 1: Check the error message
The error says 'infoo' attribute not found, which suggests a typo in method name.Step 2: Confirm correct method name
The correct method isdf.info()with one 'o'.Final Answer:
You typed the method name incorrectly -> Option BQuick Check:
Typo in method name = error [OK]
- Assuming empty DataFrame causes this error
- Forgetting to import pandas
- Thinking DataFrame must have columns to use info()
df with columns ['Age', 'Salary', 'Department']. You want to find the average salary per department but only for employees older than 30. Which pandas workflow is correct?Solution
Step 1: Filter rows where Age > 30
Usedf[df['Age'] > 30]to keep only employees older than 30.Step 2: Group filtered data by Department and calculate mean Salary
Apply.groupby('Department')['Salary'].mean()on filtered data to get average salary per department.Final Answer:
df[df['Age'] > 30].groupby('Department')['Salary'].mean() -> Option DQuick Check:
Filter then group and mean =df[df['Age'] > 30].groupby('Department')['Salary'].mean()[OK]
- Grouping before filtering data
- Trying to filter after aggregation
- Using mean() without grouping
Ready to prove it?
Pass the test and this pattern moves unknown
