Creating DataFrames from Dictionary, List, and CSV
📖 Scenario: You work as a data analyst for a small bookstore. You want to organize book information using tables to analyze sales and inventory easily.
🎯 Goal: You will create tables called DataFrames from different data sources: a dictionary, a list of lists, and a CSV file. This will help you understand how to start working with data in Python.
📋 What You'll Learn
Use the pandas library to create DataFrames
Create a DataFrame from a dictionary
Create a DataFrame from a list of lists
Create a DataFrame by reading a CSV file
Print the DataFrames to see their content
💡 Why This Matters
🌍 Real World
DataFrames are the main way to organize and analyze data in many fields like sales, finance, and research.
💼 Career
Knowing how to create DataFrames from various data sources is a key skill for data analysts and data scientists.
Progress0 / 4 steps
1
Create a DataFrame from a dictionary
Import the pandas library as pd. Then create a dictionary called book_dict with these exact entries: 'Title': ['Python Basics', 'Data Science 101', 'Machine Learning'], 'Author': ['John Doe', 'Jane Smith', 'Emily Davis'], and 'Price': [29.99, 39.99, 49.99]. Finally, create a DataFrame called df_dict from book_dict using pd.DataFrame().
Data Analysis Python
Hint
Use pd.DataFrame() to convert the dictionary into a DataFrame.
2
Create a DataFrame from a list of lists
Create a list of lists called book_list with these exact rows: ['Python Basics', 'John Doe', 29.99], ['Data Science 101', 'Jane Smith', 39.99], and ['Machine Learning', 'Emily Davis', 49.99]. Then create a DataFrame called df_list from book_list using pd.DataFrame() and set the column names to ['Title', 'Author', 'Price'].
Data Analysis Python
Hint
Use columns=[...] to name the columns when creating the DataFrame from the list.
3
Create a DataFrame by reading a CSV file
Create a CSV file named books.csv with these exact contents including the header:
Then read this CSV file into a DataFrame called df_csv using pd.read_csv().
Data Analysis Python
Hint
Use open() with mode 'w' to create the CSV file, then pd.read_csv() to read it.
4
Print all three DataFrames
Print the DataFrames df_dict, df_list, and df_csv in this exact order, each on its own line.
Data Analysis Python
Hint
Use three print() statements, one for each DataFrame.
Practice
(1/5)
1. What is the main purpose of creating a DataFrame in data analysis?
easy
A. To organize data in a table format for easy analysis
B. To write data to a text file
C. To create a list of numbers
D. To perform calculations without storing data
Solution
Step 1: Understand what a DataFrame is
A DataFrame is like a table with rows and columns, used to organize data clearly.
Step 2: Identify the purpose of DataFrames
They help analyze data easily by structuring it in rows and columns.
Final Answer:
To organize data in a table format for easy analysis -> Option A
Quick Check:
DataFrame = Table for data analysis [OK]
Hint: DataFrames = tables for data, not just lists or files [OK]
Common Mistakes:
Confusing DataFrame with a simple list
Thinking DataFrame is for saving files only
Believing DataFrame is just for calculations
2. Which of the following is the correct way to create a DataFrame from a dictionary in Python using pandas?
easy
A. pd.DataFrame(name=['Alice', 'Bob'], age=[25, 30])
B. pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})
C. pd.DataFrame({'name': 'Alice', 'age': 25})
D. pd.DataFrame['name', 'age'] = ['Alice', 'Bob'], [25, 30]
Solution
Step 1: Recall pandas DataFrame creation syntax
Use pd.DataFrame() with a dictionary where keys are column names and values are lists of column data.
Step 2: Check each option
pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]}) correctly uses a dictionary with lists for columns. Others have syntax errors or wrong formats.
Final Answer:
pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]}) -> Option B
Quick Check:
Dictionary with lists = pd.DataFrame() [OK]
Hint: Use dictionary with lists inside pd.DataFrame() [OK]
Common Mistakes:
Using pd.DataFrame with wrong brackets
Passing single values instead of lists
Trying to assign columns after creating DataFrame
3. What will be the output of this code?
import pandas as pd
data = [[1, 'Alice'], [2, 'Bob']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
print(df)
medium
A. A DataFrame with columns 'ID' and 'Name' showing the two rows of data
B. A list of lists printed as is
C. An error because columns parameter is missing
D. A DataFrame with default numeric column names
Solution
Step 1: Understand DataFrame creation from list of lists
Passing a list of lists with columns names creates a DataFrame with those columns and rows.
Step 2: Check the print output
The DataFrame will show two rows with columns 'ID' and 'Name' filled with given data.
Final Answer:
A DataFrame with columns 'ID' and 'Name' showing the two rows of data -> Option A
Quick Check:
List + columns = DataFrame table [OK]
Hint: List + columns param creates labeled DataFrame [OK]
4. Identify the error in this code that tries to create a DataFrame from a CSV file:
import pandas as pd
df = pd.read_csv('data.csv', header=2)
print(df.head())
medium
A. read_csv cannot read CSV files
B. The file name must be 'data.txt' not 'data.csv'
C. The header parameter should be 0 to read the first row as column names
D. print(df.head()) is incorrect syntax
Solution
Step 1: Understand header parameter in read_csv
header=2 means pandas treats the third row as column names, which may be wrong if first row has headers.
Step 2: Identify correct header usage
Usually header=0 is used to read the first row as column names. Using 2 can cause wrong column names or data misalignment.
Final Answer:
The header parameter should be 0 to read the first row as column names -> Option C
Quick Check:
header=0 reads first row as columns [OK]
Hint: Use header=0 to read first row as column names [OK]
Common Mistakes:
Setting header to wrong row number
Confusing file extensions
Misunderstanding print(df.head()) usage
5. You have a CSV file with columns 'Name', 'Age', and 'Score'. You want to create a DataFrame but only keep rows where 'Score' is above 80. Which code correctly creates the DataFrame and filters it?
hard
A. import pandas as pd\ndf = pd.read_csv('file.csv', filter='Score > 80')\nprint(df)
B. import pandas as pd\ndf = pd.read_csv('file.csv')\ndf_filtered = df.where('Score' > 80)\nprint(df_filtered)
C. import pandas as pd\ndf = pd.read_csv('file.csv')\ndf_filtered = df.filter('Score > 80')\nprint(df_filtered)
D. import pandas as pd\ndf = pd.read_csv('file.csv')\ndf_filtered = df[df['Score'] > 80]\nprint(df_filtered)
Solution
Step 1: Read CSV file into DataFrame
Use pd.read_csv('file.csv') to load all data.
Step 2: Filter rows where 'Score' > 80
Use boolean indexing: df[df['Score'] > 80] to keep only rows with Score above 80.
Final Answer:
import pandas as pd\ndf = pd.read_csv('file.csv')\ndf_filtered = df[df['Score'] > 80]\nprint(df_filtered) -> Option D
Quick Check:
Boolean indexing filters rows [OK]
Hint: Use df[df['Score'] > 80] to filter rows [OK]
Common Mistakes:
Trying to filter inside read_csv
Using df.filter() incorrectly
Using df.where() without proper condition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.