2013版基層自治組織統計程式碼資料整理
民政部網站上提供了基層組織統計程式碼,只有2012、2013兩年有這個檔案下載,同時這兩年也提供了縣以下行政程式碼表,htm格式的。因為每年都有行政區劃的調整,2014至今都是隻提供縣以上的資料和縣以下的變更資料。
我們今天來整理2013版的基層組織統計程式碼資料:
下載解壓出文字檔案
這個檔案有23M資料73。7萬行。
我們用Power Query作簡單處理:
資料載入後是這個樣子的:
用的TAB鍵來區分層級歸屬,這樣的格式不方便我們作資料統計,所以我們要作適當地整理。
DAX中有PATH是非常適合處理這種層級結構資料,但是需要給出父級、子級的編碼,然後才能用PATH類的函式來做資料統計。
子碼整理比較簡單,只是去掉多餘的字元就可以了。
父級編碼要複雜一些,我們先把原始碼分列用TAB分列:
這樣我們就能看清楚真實的層級關係了,為了整理父級編碼,我們需要向下填充所有的編碼,在填充之前需要替換空白為null:
然後向下填充:
有的同學會說,兩個省交界的位置會出現越界情況:
這個沒關係,我們最後要透過子碼來判斷,子碼與前面的每一列進行判斷,相等才有結果。
作判斷之前要對前面的這些列作格式整理,清楚不可見字元:
穩妥起見Text。Clean、Text。Trim都做一次,然後我們來建立父碼:
其實原理很簡單,就是用子碼與前面的每一列對比,
與第一列相同,沒有父級null;
與第二列相同,父級是第一列;
與第三列相同,父級是第二列;
與第四列相同,父級是第三列;
與第五列相同,父級是第四列;
這裡還有特殊情況要處理,直轄市的第二列是null,所以我們要判斷如果是直轄市,本來父級是第二列的要改成第一列,四個直轄市的二位編碼是:
北京:11
天津:12
上海:31
重慶:50
多加一個if判斷就好了。
最後刪除前面的列就可以了:
DAX整理
資料統計的時候我們還是要處理一下直轄市的層級問題,不然直轄市的區會與其他省的地級市同級,所以我們要先做一個層級深度的調整:
透過這個度量值來調整直轄市區及以下組織程式碼的層級,直轄市區及以下組織程式碼的層級
深
度加1。
我們可以用這個層級深度來作為篩選條件,篩選出各個層級的表格:
[p]=1就是省級行政單位
[p]=2就是地市級行政單位
[p]=3就是區縣級行政單位
[p]=4就是街道級行政單位
[p]=5就是社群居委會級行政單位
然後我們要統計這些資料就很簡單啦,分別統計各個表的行數就可以了,當然我們也可以不用建立這些實際表,直接寫在度量值中也是可以的。
我們可以根據層級關係來建立關係:
然後看統計結果:
各省地級市數量:
各省區縣數量:
各省街道數量:
各省社群數量:
分解樹: