{"id":4216,"date":"2026-03-01T10:06:23","date_gmt":"2026-03-01T02:06:23","guid":{"rendered":"http:\/\/viplao.com\/?p=4216"},"modified":"2026-03-01T10:06:25","modified_gmt":"2026-03-01T02:06:25","slug":"%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86","status":"publish","type":"post","link":"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/","title":{"rendered":"\u6570\u636e\u6280\u80fd\uff08SKILLS\uff09 \uff1a\u7b2c2\u5929\uff1a\u6570\u636e\u6e05\u6d17\u4e0e\u9884\u5904\u7406"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_71 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u6587\u7ae0\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E8%AF%BE%E7%A8%8B%E7%9B%AE%E6%A0%87\" title=\"\u8bfe\u7a0b\u76ee\u6807\">\u8bfe\u7a0b\u76ee\u6807<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%A0%B8%E5%BF%83Skills\" title=\"\u6838\u5fc3Skills\">\u6838\u5fc3Skills<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E8%AF%BE%E4%BB%B6%E5%86%85%E5%AE%B9%E4%B8%8E%E4%BB%A3%E7%A0%81\" title=\"\u8bfe\u4ef6\u5185\u5bb9\u4e0e\u4ee3\u7801\">\u8bfe\u4ef6\u5185\u5bb9\u4e0e\u4ee3\u7801<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A41%EF%BC%9A%E5%AF%BC%E5%85%A5%E5%BA%93%E4%B8%8E%E6%95%B0%E6%8D%AE\" title=\"\u6b65\u9aa41\uff1a\u5bfc\u5165\u5e93\u4e0e\u6570\u636e\">\u6b65\u9aa41\uff1a\u5bfc\u5165\u5e93\u4e0e\u6570\u636e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A42%EF%BC%9A%E6%B7%B1%E5%85%A5%E6%A3%80%E6%9F%A5%E6%95%B0%E6%8D%AE%E8%B4%A8%E9%87%8F\" title=\"\u6b65\u9aa42\uff1a\u6df1\u5165\u68c0\u67e5\u6570\u636e\u8d28\u91cf\">\u6b65\u9aa42\uff1a\u6df1\u5165\u68c0\u67e5\u6570\u636e\u8d28\u91cf<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A43%EF%BC%9A%E5%A4%84%E7%90%86%E7%BC%BA%E5%A4%B1%E5%80%BC\" title=\"\u6b65\u9aa43\uff1a\u5904\u7406\u7f3a\u5931\u503c\">\u6b65\u9aa43\uff1a\u5904\u7406\u7f3a\u5931\u503c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A44%EF%BC%9A%E5%A4%84%E7%90%86%E9%87%8D%E5%A4%8D%E5%80%BC\" title=\"\u6b65\u9aa44\uff1a\u5904\u7406\u91cd\u590d\u503c\">\u6b65\u9aa44\uff1a\u5904\u7406\u91cd\u590d\u503c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A45%EF%BC%9A%E5%A4%84%E7%90%86%E5%BC%82%E5%B8%B8%E5%80%BC\" title=\"\u6b65\u9aa45\uff1a\u5904\u7406\u5f02\u5e38\u503c\">\u6b65\u9aa45\uff1a\u5904\u7406\u5f02\u5e38\u503c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A46%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E4%B8%8E%E6%97%A5%E6%9C%9F%E5%A4%84%E7%90%86\" title=\"\u6b65\u9aa46\uff1a\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e0e\u65e5\u671f\u5904\u7406\">\u6b65\u9aa46\uff1a\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e0e\u65e5\u671f\u5904\u7406<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A47%EF%BC%9A%E6%95%B0%E6%8D%AE%E5%88%86%E7%AE%B1%EF%BC%88%E7%A6%BB%E6%95%A3%E5%8C%96%EF%BC%89\" title=\"\u6b65\u9aa47\uff1a\u6570\u636e\u5206\u7bb1\uff08\u79bb\u6563\u5316\uff09\">\u6b65\u9aa47\uff1a\u6570\u636e\u5206\u7bb1\uff08\u79bb\u6563\u5316\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A48%EF%BC%9A%E6%95%B0%E6%8D%AE%E6%A0%87%E5%87%86%E5%8C%96%EF%BC%88%E5%BD%92%E4%B8%80%E5%8C%96%EF%BC%89\" title=\"\u6b65\u9aa48\uff1a\u6570\u636e\u6807\u51c6\u5316\uff08\u5f52\u4e00\u5316\uff09\">\u6b65\u9aa48\uff1a\u6570\u636e\u6807\u51c6\u5316\uff08\u5f52\u4e00\u5316\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%AD%A5%E9%AA%A49%EF%BC%9A%E4%BF%9D%E5%AD%98%E6%B8%85%E6%B4%97%E5%90%8E%E7%9A%84%E6%95%B0%E6%8D%AE\" title=\"\u6b65\u9aa49\uff1a\u4fdd\u5b58\u6e05\u6d17\u540e\u7684\u6570\u636e\">\u6b65\u9aa49\uff1a\u4fdd\u5b58\u6e05\u6d17\u540e\u7684\u6570\u636e<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/#%E6%9C%AC%E6%97%A5%E8%A6%81%E7%82%B9%E6%80%BB%E7%BB%93\" title=\"\u672c\u65e5\u8981\u70b9\u603b\u7ed3\">\u672c\u65e5\u8981\u70b9\u603b\u7ed3<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%AF%BE%E7%A8%8B%E7%9B%AE%E6%A0%87\"><\/span><strong>\u8bfe\u7a0b\u76ee\u6807<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol>\n<li>\u8bc6\u522b\u5e76\u5904\u7406\u6570\u636e\u4e2d\u7684\u7f3a\u5931\u503c\u3001\u91cd\u590d\u503c\u548c\u5f02\u5e38\u503c\u3002<\/li>\n\n\n\n<li>\u638c\u63e1\u6570\u636e\u7c7b\u578b\u7684\u8f6c\u6362\u4e0e\u683c\u5f0f\u5316\u3002<\/li>\n\n\n\n<li>\u5b66\u4e60\u6570\u636e\u5206\u7bb1\uff08\u79bb\u6563\u5316\uff09\u4e0e\u6807\u51c6\u5316\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%A0%B8%E5%BF%83Skills\"><\/span><strong>\u6838\u5fc3Skills<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul>\n<li><strong>\u6570\u636e\u6e05\u6d17<\/strong>\uff1a\u5904\u7406\u7f3a\u5931\u503c\u3001\u91cd\u590d\u503c\u3001\u5f02\u5e38\u503c<\/li>\n\n\n\n<li><strong>\u6570\u636e\u8f6c\u6362<\/strong>\uff1a\u7c7b\u578b\u8f6c\u6362\u3001\u65e5\u671f\u5904\u7406\u3001\u5b57\u7b26\u4e32\u5904\u7406<\/li>\n\n\n\n<li><strong>\u6570\u636e\u52a0\u5de5<\/strong>\uff1a\u5206\u7bb1\u3001\u6807\u51c6\u5316\u3001\u7279\u5f81\u884d\u751f<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%AF%BE%E4%BB%B6%E5%86%85%E5%AE%B9%E4%B8%8E%E4%BB%A3%E7%A0%81\"><\/span><strong>\u8bfe\u4ef6\u5185\u5bb9\u4e0e\u4ee3\u7801<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A41%EF%BC%9A%E5%AF%BC%E5%85%A5%E5%BA%93%E4%B8%8E%E6%95%B0%E6%8D%AE\"><\/span><strong>\u6b65\u9aa41\uff1a\u5bfc\u5165\u5e93\u4e0e\u6570\u636e<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code># \u4ee3\u7801\u6587\u4ef6\uff1aday2_data_cleaning.ipynb\n# \u6cbf\u7528\u7b2c1\u5929\u5904\u7406\u540e\u7684\u6570\u636e\uff0c\u6216\u76f4\u63a5\u8bfb\u53d6\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom datetime import datetime\n\n# \u8bfb\u53d6\u7b2c1\u5929\u4fdd\u5b58\u7684\u6570\u636e\ndf = pd.read_csv('processed_orders_with_profit.csv', encoding='utf-8')\nprint(f\"&gt;&gt;&gt; \u6570\u636e\u52a0\u8f7d\u6210\u529f\uff01\u5f62\u72b6: {df.shape}\")\ndisplay(df.head())\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A42%EF%BC%9A%E6%B7%B1%E5%85%A5%E6%A3%80%E6%9F%A5%E6%95%B0%E6%8D%AE%E8%B4%A8%E9%87%8F\"><\/span><strong>\u6b65\u9aa42\uff1a\u6df1\u5165\u68c0\u67e5\u6570\u636e\u8d28\u91cf<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa41\uff1a\u6570\u636e\u8d28\u91cf\u6df1\u5ea6\u68c0\u67e5\u3011\")\nprint(\"=\"*60)\n# 1. \u7f3a\u5931\u503c\u68c0\u67e5\nmissing_summary = df.isnull().sum()\nmissing_percentage = (df.isnull().sum() \/ len(df)) * 100\nmissing_df = pd.DataFrame({'\u7f3a\u5931\u6570\u91cf': missing_summary, '\u7f3a\u5931\u6bd4\u4f8b%': missing_percentage.round(2)})\nprint(\"&gt;&gt;&gt; \u5404\u5b57\u6bb5\u7f3a\u5931\u503c\u7edf\u8ba1:\")\ndisplay(missing_df[missing_df['\u7f3a\u5931\u6570\u91cf'] &gt; 0])\n\n# 2. \u91cd\u590d\u503c\u68c0\u67e5\nduplicate_rows = df.duplicated().sum()\nprint(f\"&gt;&gt;&gt; \u5b8c\u5168\u91cd\u590d\u7684\u884c\u6570: {duplicate_rows}\")\nif duplicate_rows &gt; 0:\n    display(df[df.duplicated()].head())\n\n# 3. \u5173\u952e\u5b57\u6bb5\u552f\u4e00\u503c\u68c0\u67e5\nprint(\"\\n&gt;&gt;&gt; \u5173\u952e\u5b57\u6bb5\u552f\u4e00\u503c\u6570\u91cf:\")\nprint(f\"  \u8ba2\u5355ID\u552f\u4e00\u6570: {df['order_id'].nunique()} (\u5e94\u4e0e\u603b\u884c\u6570{len(df)}\u4e00\u81f4)\")\nprint(f\"  \u7528\u6237ID\u552f\u4e00\u6570: {df['user_id'].nunique()}\")\nprint(f\"  \u5546\u54c1ID\u552f\u4e00\u6570: {df['product_id'].nunique()}\")\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A43%EF%BC%9A%E5%A4%84%E7%90%86%E7%BC%BA%E5%A4%B1%E5%80%BC\"><\/span><strong>\u6b65\u9aa43\uff1a\u5904\u7406\u7f3a\u5931\u503c<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa42\uff1a\u5904\u7406\u7f3a\u5931\u503c\u3011\")\nprint(\"=\"*60)\n# \u5047\u8bbe `cost_price` \u548c `brand` \u53ef\u80fd\u5b58\u5728\u7f3a\u5931\n# \u7b56\u75651\uff1a\u5220\u9664\u7f3a\u5931\u7387\u8fc7\u9ad8\u7684\u884c\uff08\u5982\u679c\u67d0\u5217\u7f3a\u5931\u592a\u591a\uff09\n# \u7b56\u75652\uff1a\u586b\u5145 - \u6570\u503c\u5217\u7528\u4e2d\u4f4d\u6570\/\u5747\u503c\uff0c\u5206\u7c7b\u5217\u7528\u4f17\u6570\u6216\u2018\u672a\u77e5\u2019\n\n# \u586b\u5145\u6570\u503c\u578b\u7f3a\u5931\u503c\uff08\u4f8b\u5982\u6210\u672c\u4ef7\uff09\nif 'cost_price' in df.columns and df['cost_price'].isnull().sum() &gt; 0:\n    median_cost = df['cost_price'].median()\n    df['cost_price'].fillna(median_cost, inplace=True)\n    print(f\"&gt;&gt;&gt; \u5df2\u7528\u4e2d\u4f4d\u6570 {median_cost:.2f} \u586b\u5145 cost_price \u7f3a\u5931\u503c\u3002\")\n\n# \u586b\u5145\u5206\u7c7b\u578b\u7f3a\u5931\u503c\uff08\u4f8b\u5982\u54c1\u724c\uff09\nif 'brand' in df.columns and df['brand'].isnull().sum() &gt; 0:\n    mode_brand = df['brand'].mode()[0]  # \u4f17\u6570\n    df['brand'].fillna(mode_brand, inplace=True)\n    print(f\"&gt;&gt;&gt; \u5df2\u7528\u4f17\u6570 '{mode_brand}' \u586b\u5145 brand \u7f3a\u5931\u503c\u3002\")\n    # \u6216\u8005\u586b\u5145\u4e3a\u2018\u672a\u77e5\u2019\n    # df['brand'].fillna('\u672a\u77e5', inplace=True)\n\nprint(\"&gt;&gt;&gt; \u586b\u5145\u540e\u7f3a\u5931\u503c\u590d\u67e5:\")\nprint(df.isnull().sum())\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A44%EF%BC%9A%E5%A4%84%E7%90%86%E9%87%8D%E5%A4%8D%E5%80%BC\"><\/span><strong>\u6b65\u9aa44\uff1a\u5904\u7406\u91cd\u590d\u503c<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa43\uff1a\u5904\u7406\u91cd\u590d\u503c\u3011\")\nprint(\"=\"*60)\n# \u5220\u9664\u5b8c\u5168\u91cd\u590d\u7684\u884c\ninitial_count = len(df)\ndf.drop_duplicates(inplace=True)\nfinal_count = len(df)\nprint(f\"&gt;&gt;&gt; \u5220\u9664\u91cd\u590d\u884c\uff1a\u4ece {initial_count} \u884c\u51cf\u5c11\u5230 {final_count} \u884c\uff0c\u5220\u9664\u4e86 {initial_count - final_count} \u884c\u3002\")\n\n# \u4e1a\u52a1\u903b\u8f91\u53bb\u91cd\uff1a\u4f8b\u5982\uff0c\u540c\u4e00\u8ba2\u5355ID\u4e0d\u5e94\u6709\u91cd\u590d\uff08\u9664\u975e\u662f\u4e0d\u540c\u5546\u54c1\uff0c\u4f46\u672c\u4f8b\u4e2dorder_id\u82e5\u552f\u4e00\uff09\n# \u68c0\u67e5\u5e76\u5904\u7406\u53ef\u80fd\u7684\u4e1a\u52a1\u91cd\u590d\norder_id_dups = df['order_id'].duplicated().sum()\nif order_id_dups &gt; 0:\n    print(f\"\u8b66\u544a\uff1a\u53d1\u73b0 {order_id_dups} \u4e2a\u91cd\u590d\u7684\u8ba2\u5355ID\uff0c\u9700\u6839\u636e\u4e1a\u52a1\u903b\u8f91\u68c0\u67e5\u3002\")\n    # \u53ef\u80fd\u9700\u8981\u6309\u5176\u4ed6\u5217\u805a\u5408\u6216\u5220\u9664\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A45%EF%BC%9A%E5%A4%84%E7%90%86%E5%BC%82%E5%B8%B8%E5%80%BC\"><\/span><strong>\u6b65\u9aa45\uff1a\u5904\u7406\u5f02\u5e38\u503c<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa44\uff1a\u68c0\u6d4b\u4e0e\u5904\u7406\u5f02\u5e38\u503c\u3011\")\nprint(\"=\"*60)\n# 1. \u4f7f\u7528\u63cf\u8ff0\u6027\u7edf\u8ba1\u548c\u7bb1\u7ebf\u56fe\u8bc6\u522b\u5f02\u5e38\u503c\nprint(\"&gt;&gt;&gt; \u6570\u503c\u5b57\u6bb5\u63cf\u8ff0\u7edf\u8ba1 (\u5173\u6ce8min, max, \u4e0e\u5206\u4f4d\u6570\u7684\u5dee\u8ddd):\")\ndisplay(df[['quantity', 'unit_price', 'total_amount', 'gross_profit']].describe())\n\n# \u7ed8\u5236\u7bb1\u7ebf\u56fe\nfig, axes = plt.subplots(2, 2, figsize=(12, 10))\nnumeric_cols = ['quantity', 'unit_price', 'total_amount', 'gross_profit']\nfor i, col in enumerate(numeric_cols):\n    ax = axes[i\/\/2, i%2]\n    df.boxplot(column=col, ax=ax)\n    ax.set_title(f'{col} \u7bb1\u7ebf\u56fe')\nplt.tight_layout()\nplt.show()\n\n# 2. \u57fa\u4e8e\u4e1a\u52a1\u89c4\u5219\u548c\u7edf\u8ba1\u65b9\u6cd5\u5904\u7406\u5f02\u5e38\u503c\n# \u65b9\u6cd5A\uff1a\u5206\u4f4d\u6570\u6cd5\uff08IQR\uff09\ndef cap_outliers_iqr(series):\n    Q1 = series.quantile(0.25)\n    Q3 = series.quantile(0.75)\n    IQR = Q3 - Q1\n    lower_bound = Q1 - 1.5 * IQR\n    upper_bound = Q3 + 1.5 * IQR\n    # \u5c06\u8d85\u51fa\u8fb9\u754c\u7684\u503c\u66ff\u6362\u4e3a\u8fb9\u754c\u503c\uff08\u76d6\u5e3d\u6cd5\uff09\n    return series.clip(lower_bound, upper_bound)\n\nprint(\"&gt;&gt;&gt; \u5e94\u7528IQR\u76d6\u5e3d\u6cd5\u5904\u7406\u6781\u7aef\u5f02\u5e38\u503c...\")\ndf['total_amount_capped'] = cap_outliers_iqr(df['total_amount'])\ndf['gross_profit_capped'] = cap_outliers_iqr(df['gross_profit'])\n\n# \u5bf9\u6bd4\u5904\u7406\u524d\u540e\nprint(\"&gt;&gt;&gt; \u5904\u7406\u524d\u540e total_amount \u8303\u56f4\u5bf9\u6bd4:\")\nprint(f\"  \u539f\u59cb\u8303\u56f4: [{df['total_amount'].min():.2f}, {df['total_amount'].max():.2f}]\")\nprint(f\"  \u76d6\u5e3d\u540e\u8303\u56f4: [{df['total_amount_capped'].min():.2f}, {df['total_amount_capped'].max():.2f}]\")\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A46%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E4%B8%8E%E6%97%A5%E6%9C%9F%E5%A4%84%E7%90%86\"><\/span><strong>\u6b65\u9aa46\uff1a\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e0e\u65e5\u671f\u5904\u7406<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa45\uff1a\u6570\u636e\u7c7b\u578b\u8f6c\u6362\u4e0e\u65e5\u671f\u5904\u7406\u3011\")\nprint(\"=\"*60)\n# 1. \u65e5\u671f\u5b57\u6bb5\u8f6c\u6362\uff08\u5982\u679c\u5b58\u5728\uff09\nif 'order_date' in df.columns:\n    df['order_date'] = pd.to_datetime(df['order_date'])\n    print(\"&gt;&gt;&gt; order_date \u5df2\u8f6c\u6362\u4e3a datetime \u7c7b\u578b\u3002\")\n    # \u884d\u751f\u65b0\u7684\u65e5\u671f\u7279\u5f81\n    df['order_year'] = df['order_date'].dt.year\n    df['order_month'] = df['order_date'].dt.month\n    df['order_day'] = df['order_date'].dt.day\n    df['order_weekday'] = df['order_date'].dt.weekday  # \u5468\u4e00=0, \u5468\u65e5=6\n    print(\"&gt;&gt;&gt; \u5df2\u884d\u751f\u51fa\u5e74\u3001\u6708\u3001\u65e5\u3001\u661f\u671f\u51e0\u7b49\u7279\u5f81\u3002\")\n    display(df[['order_date', 'order_year', 'order_month', 'order_day', 'order_weekday']].head())\n\n# 2. \u5206\u7c7b\u5b57\u6bb5\u8f6c\u6362\u4e3acategory\u7c7b\u578b\u4ee5\u8282\u7701\u5185\u5b58\ncat_cols = ['city', 'category', 'brand', 'warehouse']\nfor col in cat_cols:\n    if col in df.columns:\n        df[col] = df[col].astype('category')\n        print(f\"&gt;&gt;&gt; {col} \u5df2\u8f6c\u6362\u4e3a category \u7c7b\u578b\u3002\")\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A47%EF%BC%9A%E6%95%B0%E6%8D%AE%E5%88%86%E7%AE%B1%EF%BC%88%E7%A6%BB%E6%95%A3%E5%8C%96%EF%BC%89\"><\/span><strong>\u6b65\u9aa47\uff1a\u6570\u636e\u5206\u7bb1\uff08\u79bb\u6563\u5316\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa46\uff1a\u6570\u636e\u5206\u7bb1\uff08\u79bb\u6563\u5316\uff09\u3011\")\nprint(\"=\"*60)\n# 1. \u7b49\u5bbd\u5206\u7bb1\uff1a\u5c06\u7528\u6237\u6d88\u8d39\u91d1\u989d\u5206\u4e3a\u9ad8\u3001\u4e2d\u3001\u4f4e\u4e09\u6863\nif 'total_amount_capped' in df.columns:\n    df['amount_level'] = pd.cut(df['total_amount_capped'],\n                                 bins=[0, 500, 2000, df['total_amount_capped'].max()],\n                                 labels=['\u4f4e', '\u4e2d', '\u9ad8'],\n                                 include_lowest=True)\n    print(\"&gt;&gt;&gt; \u8ba2\u5355\u91d1\u989d\u5206\u7bb1\uff08\u7b49\u5bbd\uff09\u5b8c\u6210\u3002\")\n    print(df['amount_level'].value_counts())\n\n# 2. \u7b49\u9891\u5206\u7bb1\uff08\u6309\u5206\u4f4d\u6570\uff09\uff1a\u5c06\u7528\u6237\u6309\u6d88\u8d39\u91d1\u989d\u5206\u4e3a4\u7ec4\uff0c\u6bcf\u7ec4\u6570\u91cf\u5927\u81f4\u76f8\u7b49\nif 'total_amount_capped' in df.columns:\n    df['amount_quantile'] = pd.qcut(df['total_amount_capped'], q=4, labels=['Q1', 'Q2', 'Q3', 'Q4'])\n    print(\"&gt;&gt;&gt; \u8ba2\u5355\u91d1\u989d\u7b49\u9891\u5206\u7bb1\u5b8c\u6210\u3002\")\n    print(df['amount_quantile'].value_counts())\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A48%EF%BC%9A%E6%95%B0%E6%8D%AE%E6%A0%87%E5%87%86%E5%8C%96%EF%BC%88%E5%BD%92%E4%B8%80%E5%8C%96%EF%BC%89\"><\/span><strong>\u6b65\u9aa48\uff1a\u6570\u636e\u6807\u51c6\u5316\uff08\u5f52\u4e00\u5316\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code>print(\"=\"*60)\nprint(\"\u3010\u6b65\u9aa47\uff1a\u6570\u636e\u6807\u51c6\u5316\u3011\")\nprint(\"=\"*60)\n# \u4e3a\u540e\u7eed\u5efa\u6a21\u51c6\u5907\uff0c\u5bf9\u6570\u503c\u7279\u5f81\u8fdb\u884c\u6807\u51c6\u5316\nfrom sklearn.preprocessing import MinMaxScaler, StandardScaler\n\n# \u5047\u8bbe\u6211\u4eec\u9700\u8981\u6807\u51c6\u5316\u7684\u5217\nscale_cols = ['unit_price', 'total_amount_capped', 'gross_profit_capped']\nscaler = MinMaxScaler()  # \u5f52\u4e00\u5316\u5230[0,1]\n# scaler = StandardScaler() # Z-score\u6807\u51c6\u5316\n\ndf_scaled = df.copy()\ndf_scaled[scale_cols] = scaler.fit_transform(df[scale_cols])\nprint(\"&gt;&gt;&gt; \u5df2\u5bf9\u6570\u503c\u5217\u8fdb\u884c\u5f52\u4e00\u5316\u5904\u7406\u3002\")\ndisplay(df_scaled[scale_cols].head())\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%AD%A5%E9%AA%A49%EF%BC%9A%E4%BF%9D%E5%AD%98%E6%B8%85%E6%B4%97%E5%90%8E%E7%9A%84%E6%95%B0%E6%8D%AE\"><\/span><strong>\u6b65\u9aa49\uff1a\u4fdd\u5b58\u6e05\u6d17\u540e\u7684\u6570\u636e<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">python<code># \u4fdd\u5b58\u6e05\u6d17\u548c\u9884\u5904\u7406\u540e\u7684\u6570\u636e\ndf.to_csv('cleaned_orders.csv', index=False, encoding='utf-8')\ndf_scaled.to_csv('cleaned_and_scaled_orders.csv', index=False, encoding='utf-8')\nprint(\"&gt;&gt;&gt; \u6e05\u6d17\u540e\u7684\u6570\u636e\u5df2\u4fdd\u5b58\u4e3a 'cleaned_orders.csv'\")\nprint(\"&gt;&gt;&gt; \u6e05\u6d17\u5e76\u6807\u51c6\u5316\u540e\u7684\u6570\u636e\u5df2\u4fdd\u5b58\u4e3a 'cleaned_and_scaled_orders.csv'\")\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%9C%AC%E6%97%A5%E8%A6%81%E7%82%B9%E6%80%BB%E7%BB%93\"><\/span><strong>\u672c\u65e5\u8981\u70b9\u603b\u7ed3<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol>\n<li><strong>\u6570\u636e\u8d28\u91cf\u8bc4\u4f30<\/strong>\uff1a<code>.isnull()<\/code>, <code>.duplicated()<\/code>, <code>.nunique()<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u7f3a\u5931\u503c\u5904\u7406<\/strong>\uff1a<code>.fillna()<\/code> \u7528\u4e2d\u4f4d\u6570\u3001\u4f17\u6570\u6216\u56fa\u5b9a\u503c\u586b\u5145\uff1b<code>.dropna()<\/code> \u5220\u9664\u3002<\/li>\n\n\n\n<li><strong>\u5f02\u5e38\u503c\u68c0\u6d4b<\/strong>\uff1a\u7bb1\u7ebf\u56fe\u3001IQR\uff08\u56db\u5206\u4f4d\u8ddd\uff09\u6cd5\u3002<\/li>\n\n\n\n<li><strong>\u5f02\u5e38\u503c\u5904\u7406<\/strong>\uff1a\u76d6\u5e3d\u6cd5\uff08<code>.clip()<\/code>\uff09\u3001\u5220\u9664\u6216\u89c6\u4e3a\u7279\u6b8a\u503c\u3002<\/li>\n\n\n\n<li><strong>\u7c7b\u578b\u8f6c\u6362<\/strong>\uff1a<code>pd.to_datetime()<\/code>, <code>.astype('category')<\/code>\u3002<\/li>\n\n\n\n<li><strong>\u7279\u5f81\u884d\u751f<\/strong>\uff1a\u4ece\u65e5\u671f\u5b57\u6bb5\u63d0\u53d6\u5e74\u3001\u6708\u3001\u65e5\u7b49\u3002<\/li>\n\n\n\n<li><strong>\u6570\u636e\u5206\u7bb1<\/strong>\uff1a<code>pd.cut()<\/code>\uff08\u7b49\u5bbd\uff09\u3001<code>pd.qcut()<\/code>\uff08\u7b49\u9891\uff09\u3002<\/li>\n\n\n\n<li><strong>\u6570\u636e\u6807\u51c6\u5316<\/strong>\uff1a<code>MinMaxScaler<\/code>\uff08\u5f52\u4e00\u5316\uff09\u3001<code>StandardScaler<\/code>\uff08Z-score\u6807\u51c6\u5316\uff09\u3002<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u8bfe\u7a0b\u76ee\u6807 \u6838\u5fc3Skills \u8bfe\u4ef6\u5185\u5bb9\u4e0e\u4ee3\u7801 \u6b65\u9aa41\uff1a\u5bfc\u5165\u5e93\u4e0e\u6570\u636e python# \u4ee3\u7801\u6587\u4ef6\uff1aday2&hellip; <a href=\"http:\/\/viplao.com\/index.php\/2026\/03\/01\/%e6%95%b0%e6%8d%ae%e6%8a%80%e8%83%bd%ef%bc%88skills%ef%bc%89-%ef%bc%9a%e7%ac%ac2%e5%a4%a9%ef%bc%9a%e6%95%b0%e6%8d%ae%e6%b8%85%e6%b4%97%e4%b8%8e%e9%a2%84%e5%a4%84%e7%90%86\/\" class=\"more-link read-more\" rel=\"bookmark\">\u7ee7\u7eed\u9605\u8bfb <span class=\"screen-reader-text\">\u6570\u636e\u6280\u80fd\uff08SKILLS\uff09 \uff1a\u7b2c2\u5929\uff1a\u6570\u636e\u6e05\u6d17\u4e0e\u9884\u5904\u7406<\/span><i class=\"fa fa-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[28],"views":135,"_links":{"self":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/4216"}],"collection":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/comments?post=4216"}],"version-history":[{"count":1,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/4216\/revisions"}],"predecessor-version":[{"id":4217,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/4216\/revisions\/4217"}],"wp:attachment":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/media?parent=4216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/categories?post=4216"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/tags?post=4216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}