{"adoption": {"forks": 384, "observed_at": "2026-08-28T04:04:58.245959+00:00", "stars": 1524}, "canonical_url": "https://ross.abutalabs.com/products/hands-on-data-analysis", "card": {"archived": false, "artifact_type": "learning-resource", "description": "动手学数据分析以项目为主线，知识点孕育其中，通过边学、边做、边引导来得到更好的学习效果", "domain": ["data-science", "tutorials", "education"], "enriched": true, "function": ["data-science", "etl", "machine-learning", "data-visualization"], "health_score": 20, "homepage": null, "language": "Jupyter Notebook", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["datawhalechina/hands-on-data-analysis"], "name": "datawhalechina/hands-on-data-analysis", "platform": ["python", "cross-platform"], "pushed_at": "2024-05-29T04:52:55+00:00", "repo": "datawhalechina/hands-on-data-analysis", "stars": 1524, "tags": ["pandas", "numpy", "sklearn", "jupyter-notebooks", "data-cleaning", "exploratory-data-analysis", "chinese", "datawhale", "hands-on-course"], "topics": [], "urls": [], "use_cases": ["learn pandas and numpy for data analysis", "beginner course on the data analysis workflow", "practice data cleaning and feature engineering", "learn exploratory data analysis with real datasets", "get started with sklearn modeling and model evaluation", "follow a structured data analysis tutorial with exercises and answers"], "what_it_is": "An open-source Chinese-language hands-on course from Datawhale that teaches data analysis through project-based Jupyter notebooks covering pandas/numpy basics, data cleaning, visualization, and sklearn modeling. It pairs course exercises with reference answers and is designed for group learning.", "when_to_avoid": ["you need advanced or production-grade data engineering or MLOps material", "you require a maintained software library or tool rather than course content", "you need English-language instruction or a formally licensed resource"], "when_to_choose": ["you are a beginner wanting a guided, project-driven introduction to data analysis in Python", "you prefer learning by doing with Jupyter notebooks and reference solutions", "you want a free course covering the full pipeline from loading data to modeling and evaluation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hands-on-data-analysis", "repo": "datawhalechina/hands-on-data-analysis", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:58.245959+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:31:42.298521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff965a66ec45de9414a8300f951ef115539883f8e316fe9cbae33500ae490f4", "fetched_at": "2026-08-28T04:04:58.245959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datawhalechina/hands-on-data-analysis"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2241, "days_push": 826, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}