Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • python網頁教學
  • pandas數據處理清洗實現中文地址拆分案例 python 程式碼
python網頁教學

pandas數據處理清洗實現中文地址拆分案例 python 程式碼

Jiking 2022-09-17 Article
目錄
  • 一、案例場景
  • 二、初步方案
  • 三、優化方案

一、案例場景

字段login_place,一共267725行記錄,隨機15條記錄如下:

  後續數據分析工作需要用到地理維度進行分析,所以需要把login_place字段進行拆分成:國傢、省份、地區。

二、初步方案

  第三方中文分詞庫:jieba,可以對文本進行拆分。使用參考資料:jieba庫的使用。
初步方案:

  1. 用jieba.cut()將文本拆分為單詞列表list_word;
  2. 分支判斷list_word長度,賦值國傢、城市、地區。

程式碼:(抽取1000條記錄,看一下我這臺機器的運行時間)

%%time
# 地區拆分
for i in range(1000):
    list_word=[word for word in jieba.cut(df.iloc[i,0])]
    if len(list_word)==1:
        if '中國' in df.iloc[i,0]:
            df.loc[i,'國傢']=df.iloc[i,0][0:2]
            df.loc[i,'省份']=df.iloc[i,0][2:]
        else:
            df.loc[i,'國傢']=df.iloc[i,0]
    elif len(list_word)==2:
        df.loc[i,'國傢']=list_word[0]
        df.loc[i,'省份']=list_word[1]
    else:
        df.loc[i,'國傢']=list_word[0]
        df.loc[i,'省份']=list_word[1]
        df.loc[i,'地區']=list_word[2]
    if i%100==0:
        print(f'{round(i*100/(int(1000)),2)}%')

  1000條用瞭1min 37秒。如果全部進行數據解析等待時間應該很久很久。有很多重復的記錄,這裡先去重,再跑一次程式碼。

  去重之後,隻有404不重復的記錄。

  再跑一遍程式碼,並且把結果保存到本地档案‘df_test.xlsx’。便於查看jieba第三方分詞庫對本次數據拆分是不是想要的結果。

國傢:

‘國傢’這一列,中國臺灣沒有拆分出來。

程式碼試瞭一下,發現‘中國臺灣’確實拆分不瞭。證實瞭臺灣確實中國不可缺失的一部分。
省份:

  ‘省份’這一列拆分的更加糟糕。

總結:總數據集運行時間長,切詞不準確。需要優化拆分方案!

三、優化方案

  在上面查看Excel档案時候發現‘login_place’字段的數據有以下特點:

  • 整個數據集分類兩類:‘中國’和外國;
  • 中國的省份大多是兩個字,除瞭‘黑龍江’和‘內蒙古’;
  • 外國的,隻有國傢記錄。

優化方案:

  • 對國傢判斷,形成分支:中國和外國;
  • 對於中國,再判斷省份是不是‘黑龍江’和‘內蒙古’。
  • 不是:可以直接切分[2:4],提取省份。[4:],提取地區;
  • 是:[2:5]提取省份。[5:]提取地區

%%time
# 地區拆分
for i in range(df.shape[0]):
    if '中國' in df.iloc[i,0] :
        df.loc[i,'國傢'] = '中國'
        if ('內蒙古' in df.iloc[i,0]) or ('黑龍江' in df.iloc[i,0]):
#             print(df.iloc[i,0])
            df.loc[i,'省份'] = df.iloc[i,0][2:5]
            if len(df.iloc[i,0]) > 5:
                df.loc[i,'地區'] = df.iloc[i,0][5:]
        else:
            df.loc[i,'省份'] = df.iloc[i,0][2:4] 
            df.loc[i,'地區'] = df.iloc[i,0][4:]
    else:
        list_word = [word for word in jieba.cut(df.iloc[i,0])]
        if len(list_word) == 1:
            df.loc[i,'國傢'] = df.iloc[i,0][0:2]
            df.loc[i,'省份'] = df.iloc[i,0][2:]
        else:
            df.loc[i,'國傢'] = list_word[0]
            df.loc[i,'省份'] = list_word[1]
    if i%100==0:
        print(f'{round(i*100/(int(df.shape[0])),2)}%')

 保存Excel档案,再次查看拆分情況。經過去重後的測試集拆分符合想要的結果。

 運行未去重源數據集結果:

到此這篇關於pandas數據處理清洗實現中文地址拆分案例的文章就介紹到這瞭,更多相關pandas 中文地址拆分內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支援!

You may also like

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

Shopify 直銷業務藍圖 | Tapswap 程式碼 | Shopify Dropshipping 藍圖:完整教學

這是 eBay 和 Shopify 上的「商店」Prismatic Evolutions 預購詐騙嗎?特雷科TCG

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

相关贴文:

  1. Python容錯的前綴樹實現中文糾錯 python 程式碼
  2. Python中文糾錯的簡單實現 python 程式碼
  3. 詳解python中文編碼問題 python 程式碼
  4. python數字轉對應中文的方法總結 python 程式碼
  5. 關於Python dict存中文字符dumps()的問題 python 程式碼
  6. 用Python將GIF動圖分解成多張靜態圖片 python 程式碼
  7. 讓你分分鐘學會python條件語句 python 程式碼
  8. python基礎之序列操作 python 程式碼
Tags: python, 中文, 數據處理, 程式碼

近期文章

  • 8個最佳WooCommerce SEO插件用於更好的排名(2025)
  • 為什麼Shopify擊敗電子商務的WordPress
  • 我希望在使用WooCommerce之前我知道的5件事
  • 停止在WooCommerce插件上浪費$ 1000!嘗試變體怪物$ 59解決方案
  • 如何使用免費的WooCommerce禮品卡產品(使用免費插件)來提高銷售
  • WooCommerce的動態定價和折扣規則,用於銷售技術
  • 免費的WooCommerce產品搜索插件 – 電子商務網站的設置Advance WooSearch | AJAX搜索
  • Shopify vs WooCommerce:在線商店的最佳電子商務平台🔍
  • 啟動專業,功能豐富的超級智能電子商務網站| Merto -WooCommerce WordPress主題

標籤雲

Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

Copyright 網絡設計教學 2025