Summary — Presenting Data Insights in Reports
Introduction
Data is like a big pile of puzzle pieces. A report helps you put the pieces together and show what they mean. In this lesson, you'll learn how to turn raw numbers into clear insights that anyone can understand. You'll also see simple Python code to summarize data, make a chart, and write a mini report.
What Is an "Insight"?
- Data: The numbers you collect (like daily sales).
- Insight: A short, useful message the data tells you (for example, "Sales are higher on weekends").
- Action: What someone can do because of the insight (for example, "Hire one extra cashier for Saturdays").
How to Present Data Insights (Step by Step)
- Start with a clear question — Example: "Are orders increasing over the months?"
- Pick a few key numbers — Examples: total, average, highest, lowest. Avoid too many stats. Keep it simple.
- Clean and summarize your data — Make sure columns are labeled, numbers are correct, and missing values are handled.
- Show a simple visual — Use a bar chart or line chart. Label the axes and add a clear title.
- Write short captions — One sentence that explains the chart. Example: "Orders grew from January to June."
- Highlight a takeaway and an action — Takeaway: the most important message. Action: what to do next because of the insight.
- Keep your report short — 1 page is great. Use bullet points and clear headings.
Python Setup
You will need Python plus these libraries: pandas and matplotlib.
If needed, install them:
pip install pandas matplotlibPython Code Examples
Python Example 1: Quick Summary of Data
Goal: Load a tiny dataset, calculate total, average, and best month.
# Example 1: Summarize simple monthly orders
import pandas as pd
# Create a small dataset (you can imagine this came from a CSV)
data = {
"Month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"Orders": [30, 45, 50, 40, 60, 55]
}
df = pd.DataFrame(data)
# Basic summaries
total_orders = df["Orders"].sum()
average_orders = df["Orders"].mean()
best_row = df.loc[df["Orders"].idxmax()] # Row with the highest orders
best_month = best_row["Month"]
best_value = int(best_row["Orders"])
print("Total orders:", total_orders)
print("Average orders per month:", round(average_orders, 1))
print("Best month:", best_month, "with", best_value, "orders")
# Turn numbers into short insights
print("\nInsights:")
print("- Orders are generally rising over time.")
print(f"- {best_month} had the highest orders ({best_value}).")Python Example 2: Make a Clear Chart
Goal: Create and save a bar chart with labels and a helpful title.
# Example 2: Bar chart of orders by month
import matplotlib.pyplot as plt
# Create the figure
plt.figure(figsize=(6, 4))
bars = plt.bar(df["Month"], df["Orders"], color="#4C78A8")
# Highlight the best month by changing its color
best_index = df["Orders"].idxmax()
bars[best_index].set_color("#F58518")
# Add labels and title
plt.title("Snack Shop Orders (Jan–Jun)")
plt.xlabel("Month")
plt.ylabel("Number of Orders")
# Add text label above the best bar
plt.text(best_index, df["Orders"][best_index] + 1, "Peak", ha="center")
plt.tight_layout()
plt.savefig("orders_by_month.png", dpi=120) # Saves the chart as an image
plt.show()Python Example 3: Write a Tiny Report File
Goal: Save a short, readable report with key findings and a reference to the chart.
# Example 3: Create a mini report as a text/markdown file
report_lines = [
"Snack Shop Orders — Half-Year Report",
"",
"Question:",
"- Are orders going up over time?",
"",
"Data Source:",
"- Monthly orders from Jan to Jun (sample dataset).",
"",
"Key Findings:",
f"- Total orders: {total_orders}",
f"- Average per month: {average_orders:.1f}",
f"- Best month: {best_month} with {best_value} orders",
"",
"Chart:",
"- See file: orders_by_month.png",
"",
"Takeaway:",
"- Orders generally increased, with a peak in late spring.",
"",
"Action:",
"- Prepare extra stock in May–June next year."
]
with open("mini_report.txt", "w", encoding="utf-8") as f:
f.write("\n".join(report_lines))
print("Report saved as mini_report.txt")
print("Chart saved as orders_by_month.png")How to Write Good Data Captions
- Say what the chart shows, not just "Bar chart of orders."
- Example: "Orders increased from Jan to Jun, peaking in May."
- Keep it short (1–2 sentences).
What to Include in a One-Page Report
- Title: short and clear.
- Question: what you tried to find out.
- Data: where the data came from.
- Key Findings: 3–5 bullet points with numbers.
- Visual: one clear chart.
- Takeaway: the main message.
- Action: what to do next.
Do's and Don'ts
- Do: use simple charts (bar, line), short labels, readable colors.
- Do: explain the "so what?" in one sentence.
- Don't: overload with many charts or too many numbers.
- Don't: use tiny text or confusing color schemes.
Practical Exercise 📝
Task: You are analyzing a small smoothie shop's daily sales. Use the dataset below to:
- Compute total sales, average daily sales, and best day.
- Make a bar chart of sales by day.
- Write a one-sentence takeaway and one action.
Dataset (you can copy this into your code):
# Exercise dataset
import pandas as pd
sales_data = {
"Day": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
"CupsSold": [34, 28, 30, 35, 50, 62, 45]
}
sales_df = pd.DataFrame(sales_data)Hints:
- Use
sum(),mean(), andidxmax()like in the examples. - Save your chart as
smoothie_sales.png. - Write your report as
smoothie_report.txtwith:- Title
- Question
- Key Findings (bullets)
- Chart line
- Takeaway
- Action
Recap
- You learned how to turn raw data into a short, useful report.
- Steps: ask a question, pick key numbers, make a clear chart, write a short takeaway and action.
- Python helps you quickly summarize data, create visuals, and save a mini report file.
- Keep it simple. Aim for clarity, not complexity.