Build a Python GUI to Learn and Test Household Waste Classification
This article walks you through creating a Python Tkinter application that fetches a waste‑classification dataset, processes it with pandas, and provides interactive learning and testing modules so users can practice sorting recyclable, hazardous, wet, and dry waste.
Since Shanghai launched mandatory waste‑sorting in July 2019, the author built a Python program to help users learn the classification rules by interactively sorting garbage.
Data Acquisition
The city classifies waste into four categories—recyclable, hazardous, wet, and dry. A public dataset on Gitee provides five categories (including large items) with counts for each type, as shown in the image below.
Learning Tool Design
The tool consists of a learning module and a testing module, allowing users to study waste categories and then evaluate their knowledge.
Data Processing
Data is loaded with pandas:
import pandas as pd
df = pd.read_csv('garbage.csv')Filtering by class is done with expressions such as df[df["class"] == 2] to obtain lists of items for each category.
Learning Module
The GUI uses Tkinter. A tk.Frame hosts the main layout, tk.Label shows textual explanations, and tk.Canvas displays icons after resizing. An OptionMenu enumerates waste items, and a ScrolledText widget presents detailed descriptions.
Classification Display
When a user selects an item, a callback garbage_process updates the ScrolledText with the appropriate information. The text widget is placed on a separate canvas to avoid layout shifts.
Testing Module
The test mirrors the learning UI but adds Radiobutton widgets for users to choose the correct category. After selection, the ceshi_process function compares the answer with the dataset and provides encouragement or correction.
The author spent a weekend developing the tool, recording a video tutorial for future reference, and encourages readers to join the waste‑sorting effort.
Python Crawling & Data Mining
Life's short, I code in Python. This channel shares Python web crawling, data mining, analysis, processing, visualization, automated testing, DevOps, big data, AI, cloud computing, machine learning tools, resources, news, technical articles, tutorial videos and learning materials. Join us!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
