Lab

4.6.2. Lab#

  • Use this assignment to practice the chapter’s concepts and coding skills in runnable Python code.

  • Sign in from the account menu before you start working on the assignment.

  • Write and run your code directly in the coding cells.

  • Multiple submissions are allowed. The highest score is kept.

### Question 1: Build a Sales Table
# Import pandas as pd, then build a DataFrame from regions and revenues.
# Store the DataFrame in a variable named sales_df.
# Print exactly:
# Rows: 4
# Columns: 2
regions = ["East", "West", "East", "South"]
revenues = [1200, 950, 1350, 800]
### Your code starts here.



### Your code ends here.

Hide code cell source

### Solution
import pandas as pd

regions = ["East", "West", "East", "South"]
revenues = [1200, 950, 1350, 800]

sales_df = pd.DataFrame({"region": regions, "revenue": revenues})

print("Rows:", sales_df.shape[0])
print("Columns:", sales_df.shape[1])
Rows: 4
Columns: 2
### Question 2: Select Labeled Values
# Import pandas as pd, then create a Series from values with labels as its index.
# Store the Series in a variable named scores.
# Print exactly:
# B score: 91
# First score: 82
values = [82, 91, 76]
labels = ["A", "B", "C"]
### Your code starts here.



### Your code ends here.

Hide code cell source

### Solution
import pandas as pd

values = [82, 91, 76]
labels = ["A", "B", "C"]

scores = pd.Series(values, index=labels)

print("B score:", scores.loc["B"])
print("First score:", scores.iloc[0])
B score: 91
First score: 82
### Question 3: Detect and Fill Missing Sales
# Import pandas as pd, then create a Series from sales.
# Count missing values with isna(), fill missing values with 0, and total the filled Series.
# Print exactly:
# Missing sales: 1
# Filled total: 215
sales = [120, None, 95]
### Your code starts here.



### Your code ends here.

Hide code cell source

### Solution
import pandas as pd

sales = [120, None, 95]

sales_series = pd.Series(sales)
missing_sales = int(sales_series.isna().sum())
filled_sales = sales_series.fillna(0)

print("Missing sales:", missing_sales)
print("Filled total:", int(filled_sales.sum()))
Missing sales: 1
Filled total: 215
### Question 4: Filter and Sort Orders
# Import pandas as pd, then create a DataFrame with region and revenue columns.
# Keep rows with revenue of at least 1000 and sort from highest to lowest revenue.
# Print exactly:
# High regions: ['North', 'East']
# Top revenue: 1400
orders = [["East", 1250], ["West", 900], ["North", 1400], ["South", 700]]
### Your code starts here.



### Your code ends here.

Hide code cell source

### Solution
import pandas as pd

orders = [["East", 1250], ["West", 900], ["North", 1400], ["South", 700]]

orders_df = pd.DataFrame(orders, columns=["region", "revenue"])
high_orders = orders_df[orders_df["revenue"] >= 1000].sort_values("revenue", ascending=False)
high_regions = list(high_orders["region"])

print("High regions:", high_regions)
print("Top revenue:", int(high_orders.iloc[0]["revenue"]))
High regions: ['North', 'East']
Top revenue: 1400
### Question 5: Group Revenue by Region
# Import pandas as pd, then create a DataFrame with region and revenue columns.
# Group by region and sum revenue.
# Print exactly:
# East total: 250
# West total: 200
sales = [["East", 100], ["West", 80], ["East", 150], ["West", 120], ["South", 90]]
### Your code starts here.



### Your code ends here.

Hide code cell source

### Solution
import pandas as pd

sales = [["East", 100], ["West", 80], ["East", 150], ["West", 120], ["South", 90]]

sales_df = pd.DataFrame(sales, columns=["region", "revenue"])
summary = sales_df.groupby("region")["revenue"].sum()

print("East total:", int(summary.loc["East"]))
print("West total:", int(summary.loc["West"]))
East total: 250
West total: 200