1. 程式人生 > >12306洩露資料分析(二)

12306洩露資料分析(二)

假裝有人看我的部落格:CSDN部落格要過稽核,稽核時間大概一天左右,看不到這篇就因為我又更新了。

重要宣告:此次暫未統計香港、澳門、臺灣及南海諸島地區的資料,僅對中國大陸地區的資料進行統計,故在下文中沒有提及以上地區

注:在原資料集中包含來自香港及其他未在統計範圍內的資料,由於無法對此類資料進行精確的定位,暫時不列入統計範圍。

【比較重要的宣告:由於此文仍在更新,暫時保留一些筆記,隨筆之類的東西,最後會寫一篇正式的統計報告】

以下均簡稱資料中的人物為”使用者”

假設條件:
1.此次資料洩露均為被拖庫導致。
1.1:使用者在較多的網站註冊過賬號(鑑於目前的網站種類分佈,暫且認為是社交網站)
1.2:且使用相同的賬號及密碼
2.在5年內乘坐過火車或高鐵(此條有待考證,網上訂票具體實施日期)

人物畫像:
1.來自準一線城市及二線城市
2.屬於中等及中等偏上收入人群(高收入人群乘坐火車且自己擁有12306賬號的比重不大,低收入人群同上且不符合條件1.1)
2.1:這個好像沒什麼用,畢竟中等及中等偏上收入人群本身就在總人口中佔據較大比重,就好像之前看到的一個例子:【有人做過統計,在重大交通事故中,車速超過120km/h的佔比小於正常車速的佔比,以此做出結論:發生交通事故與是否超速沒有直接聯絡。實際上,車速超過120km/h的機動車在路上行駛的總機動車中佔比本身較小,所以在僅僅統計重大交通事故時佔比較小,而把超速行駛的機動車總數和發生交通事故的超速機動車作比較時,就遠大於上述比例】。
3.年齡分佈在83年至93年出生的人群
4.人口遷徙圖做出來再繼續寫

一、年齡分佈圖
原始碼:plt1.py

# -*- coding: cp936 -*-
'''
檔名:plt1.py
使用者分佈圖
'''


# -*- coding: cp936 -*-
import numpy as np
from matplotlib import pyplot as plt

import csv
csvfile = file(r'D:\python27\py\datas.csv','rb')
newcsv=file(r'D:\python27\py\newcsv.csv','wb')
reader = csv.reader(csvfile)
writer=csv.writer(newcsv)
a=0
data=[] for line in reader: level=line[7][:4] #print level line.append(level) data.append(level) #writer.writerow(line) csvfile.close() newcsv.close() def count(datalist,item): num=0 for a in datalist: if(a==item): num=num+1 #print num return num countlist=[] for n in range(1940,2010,1): countlist.append([n,count(data,str(n))]) #print count(data,str(n)) #print countlist x=[] y=[] for a in countlist: x.append(a[0]) y.append(a[1]) plt.axis([1940,2010,0,18000]) plt.xticks([i for i in range(1940,2011,5)]) plt.xlabel("USER_AGE") plt.ylabel("AMOUNT") plt.title("User_age Distribution Map") plt.bar(x,y) plt.show()

結果圖:

年齡分佈圖

從此圖可以看出,使用者主要分佈在1985~1992年出生的區間,並在1995年出生的以後的分佈幾乎降為0。這基本符合假設條件1.1。

  1. 這類人大多為大學畢業10年內及在校大學生(我們認為他們大多都上過大學),可以說是隨著中國網際網路一起成長的一代人,接觸網際網路較早且在網際網路上一直保持較高的活躍度。
  2. 使用者在多個網站註冊過賬號,也正因為賬號較多,為了方便記憶,使用同一套賬號和密碼。
  3. 3.

2011年6月12日起,京津城際率先試行鐵道部官網12306網路售票,標誌著中國大陸鐵路售票首次進入網際網路售票時代,為京滬高鐵實行網路售票試水。6月30日,京滬高鐵開通已就實行網路售票。2011年9月30日起所有高鐵及動車組列車實行網路售票。2011年12月24日起所有旅客列車實行網路售票。

二、地域分佈(暫時沒有圖)
原始碼:loc.py

# -*- coding: gbk -*-

import csv
csvfile = file(r'D:\python27\py\datas.csv')
newcsv=file(r'D:\python27\py\newcsv.csv','wb')
loadprov=file(r'D:\python27\py\pro.csv')
countpro=file(r'D:\python27\py\provcount.csv','wb')
reader=csv.reader(loadprov)
writecount=csv.writer(countpro)
prov=[]
provcount=[]
for line in reader:
    prov.append(line)

reader = csv.reader(csvfile)
writer=csv.writer(newcsv)
data=[]
for line in reader:
    data.append(line[3][:2])
    check=0
    for s in prov:
        if(str(line[3][:2])==s[0]):
            line.append(s[1])
            check=1

            break
    if(check==0 and str(line[3][:2])=='51'):
        if(str(line[3][:4])=='5102' or str(line[3][:2])=='50'):
            line.append('重慶')#❶
            check=1
        else:
            line.append('四川')
            check=1
    if(check==0):
        line.append('未知地區')
    che=0
    for count in provcount:
        if(line[10]==count[0]):
            count[1]=count[1]+1
            che=1
            break

    if(che==0):
        provcount.append([line[10],1])


    writer.writerow(line)

alldata=0
for pro in provcount:
    writecount.writerow(pro)
    alldata=alldata+pro[1]
print 'all data : '+str(alldata)
#writecount.writerow('alldata : '+str(alldata))
print provcount

countpro.close()
csvfile.close()
newcsv.close()

統計結果:

浙江,8769
福建,5797
遼寧,5343
安徽,5591
河南,8012
江西,5065
湖南,8482
黑龍江,6687
天津,1360
河北,5312
貴州,1931
湖北,9683
上海,3667
山東,6890
吉林,3942
山西,2730
廣東,5423
四川,8061
甘肅,1849
江蘇,8912
北京,2441
重慶,2824
新疆,1488
廣西,2588
陝西,3523
海南,403
內蒙古,2544
青海,362
雲南,1176
寧夏,492
西藏,42

人數統計:

人數

人數分佈:

人數分佈

由於各省的總人數差異較大,所以在網上查到了2010年第六次人口普查的資料,做了一個使用者數在各省總人數中的比例分佈。

在各省佔比統計:

在各省佔比統計

在各省佔比分佈:

在各省佔比分佈

由於使用的總人口資料來自2010年,距資料來源有4年的間隔,所以以上圖表僅作參考。

再次開坑】:根據在各省佔比分佈圖來看,比例最多的幾個省份分佈在華中,華東,東北和北京,天津兩個直轄市,在地域上【似乎】找不到特徵,尤其是河北和山東的資料。暫時只能確定的是在西部和南部的分佈較少。

下面是腦洞:

  1. 如果跟鐵路分佈有關【在這裡發現了重大問題:並沒有得到各省使用網路訂票的總使用者數,接下來的分析條件不足】(鐵路發達,坐火車出行方便,使用者數就較多):武漢市位於我國中部,九省通衢;東南沿海地區動車發展較早,短途出行坐動車高鐵較便捷西部地區鐵路相對不發達;哈爾濱鐵路局建設較早(1898年始建,1903年正式運營)(我知道我已經開始硬往資料上湊了……)
  2. 如果跟鐵路分佈無關(或部分有關):經濟發達程度?北京上海和廣東形成鮮明對比;人口遷徙?等做出圖再看。

基本上除了加粗的幾條,其他的基本只能是腦洞了,畢竟條件不足。下一步的工作就是根據使用者戶籍地址和手機號碼歸屬地做出大致的人口遷徙圖。

❶:關於重慶和四川的身份證號開頭
5102 或 50 開頭的是重慶 ,其他 51 開頭的是四川

1954年7月,西南大區、川東行署區撤銷,川東行署區首府北碚市併入重慶,重慶市從直轄市降為省轄市,重新併入四川省。①

1997年3月14日,在第八屆全國人民代表大會第五次會議上,審議通過了將原四川省重慶市、萬縣市、涪陵市、黔江地區合併,設立重慶中央直轄市的議案。同年6月18日,重慶直轄市政府機構正式掛牌。②

在1954年重慶直轄市時期,重慶全市只有6個區2個縣,加上當時的地級市北碚市被稱作主城9區,即重慶的核心區;而1983-1997年間的四川省重慶市時期,管轄範圍是“九區十二縣”,被稱為“老重慶”,直轄後四川省其他幾個地級市劃歸重慶市管轄。③

在③中所謂“1983-1997年間的四川省重慶市時期”中提到1983年而不是1954年,我暫時認為原因如下:

1983年3月3日,永川地區八個縣併入重慶市,重慶成為中國第一個享有省級經濟管理許可權的計劃單列市。④

關於計劃單列市,維基百科的介紹:

計劃單列市,全稱國家社會與經濟發展計劃單列市,是中國大陸的省級單位對所轄大城市下放部分經濟管理許可權的城市。計劃單列市仍保留省轄市的行政地位,繼續接受省級行政機構的領導。⑤

也就是說,在1954年至1997年間,重慶市隸屬於四川省,又由於重慶市在1983年被列為計劃單列市,所以1983年之前出生在重慶的身份證號是5102開頭,而在這之後出生的是50開頭。

相關推薦

12306洩露資料分析

假裝有人看我的部落格:CSDN部落格要過稽核,稽核時間大概一天左右,看不到這篇就因為我又更新了。 【重要宣告:此次暫未統計香港、澳門、臺灣及南海諸島地區的資料,僅對中國大陸地區的資料進行統計,故在下文中沒有提及以上地區】 注:在原資料集中包含來自香港及其他未

微信好友資料打包下載--微信資料分析

簡述 其實要這麼做的原因就是,我們之前操作的每次都要登入確認什麼的,比較麻煩。所以,如果我們能夠一次性將所有的資料都下載下來,然後儲存起來,那麼就可以直接操作資料,而不需要等待拿資料的過程了~ 程式碼

Python 金融資料分析

1.樣本資料位置 series = Series() series.mean() # 均數 series.median() # 中位數 series.mode() # 眾數 series.quantil

企業如何運用好資料分析

在前面提到的內容中我們不難發現數據分析能夠在企業發揮很大的作用,但是對於資料分析還是需要學習很多的知識,尤其是在進行資料分析的時候需要重視細節。因為資料分析需要嚴謹的態度,如果忽視了細節,那麼就會一著不慎滿盤皆輸。在表達資料分析結果的時候我們會用到很多的圖表。這樣才能夠做好資料分析。在這篇文章中我們會為大

資料分析

Numpy:Numeric Python 引言:要學好機器學習,先打好資料分析的基礎,打好基礎才能實現後面那些經驗的功能 一、匯入 匯入:import numpy as np 檢視版本:np.__ version __ 二、陣列ndarray 1、使用np.ar

創業公司做資料分析運營資料系統

  作為系列文章的第二篇,本文將首先來探討應用層中的運營資料系統,因為運營資料幾乎是所有網際網路創業公司開始做資料的起點,也是早期資料服務的主要物件。本文將著重回顧下我們做了哪些工作、遇到過哪些問題、如何解決並實現了相應的功能。 早期資料服務   產品上

產品經理怎麼用好資料分析

我們在上一篇文章中給大家介紹了產品經理對資料分析的使用的基本要求,需要產品經理能夠看出資料的維度以及做好資料的指標。但是隻有做到這些還是不夠的,我們還需要在資料分析異常中發現問題,這是一個比較棘手的工作,下面就由小編接著給大家聊聊資料分析的使用。 產品經理除了要看到資料的維度以及做好資料的指標,還必須能

【Python實戰】Pandas:讓你像寫SQL一樣做資料分析

1. 引言 前一篇介紹了Pandas實現簡單的SQL操作,本篇中將主要介紹一些相對複雜一點的操作。為了方便後面實操,先給出一份簡化版的裝置統計資料: 0 android NLL 387546520 2099457911 0 ios NLL 52877990 916421755 1 and

clusterdata-2011-2 谷歌叢集資料分析--task_usage

先對 task_usage 即任務資源使用表進行一個分析學習。 task_usage 表共有20列,代表20個屬性,具體每一列代表含義即屬性名稱如下:                       

資料結構LinkedList原始碼分析

一、基本概念 1、關係圖: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, C

BIGEMAP教程之Arcgis進行DEM資料進行水文分析

第一步:需要的工具       1. BIGEMPA地圖下載器       3. ARCGIS 第二步驟:通過BIGEMAP下載高程資料     

電商大資料專案-推薦系統實戰之實時分析以及離線分析

電商大資料專案-推薦系統實戰(一)環境搭建以及日誌,人口,商品分析http://blog.51cto.com/6989066/2325073電商大資料專案-推薦系統實戰之推薦演算法http://blog.51cto.com/6989066/2326209電商大資料專案-推薦系統實戰之實時分析以及離線分析htt

Arcg​is下DEM資料進行水文分析

第一步:需要的工具 第二步驟:通過BIGEMAP下載高程資料        1. 啟動BIGEMAP地圖下載器軟體,檢視左上角是否顯示【已授權:所有地圖】,如果沒有該顯示,請聯絡我們的客服人員。如下圖所示:        2. 選擇左上角屬性選項,選擇【

資料分析為什麼能夠打敗傳統的商業分析

在上一篇文章中,我們給大家介紹了傳統的商業分析模式是怎麼被資料分析一步一步取代的,資料分析這種新型的分析方式使得傳統的商業分析模式逐漸的走向死亡,那麼資料分析和傳統的商業分析中有什麼優點呢?下面就由小編為大家解答一下這個問題,希望這篇文章能夠給大家帶來幫助。 資料分析中有計算引擎上

資料探勘演算法之聚類分析canopy演算法

canopy是聚類演算法的一種實現 它是一種快速,簡單,但是不太準確的聚類演算法 canopy通過兩個人為確定的閾值t1,t2來對資料進行計算,可以達到將一堆混亂的資料分類成有一定規則的n個數據堆 由於canopy演算法本身的目的只是將混亂的資料劃分成大概的幾個類別,所以它

資料結構雙向連結串列的的分析與python程式碼實現

概念        每個節點有兩個連結:一個指向前一個節點,當此節點為第一個節點時,指向空值;而另一個指向下一個節點,當此節點為最後一個節點時,指向空值。 特點:         節點包含

Linux核心--網路棧實現分析--資料包的傳遞過程

本文分析基於Linux Kernel 1.2.13作者:閆明注:標題中的”(上)“,”(下)“表示分析過程基於資料包的傳遞方向:”(上)“表示分析是從底層向上分析、”(下)“表示分析是從上向下分析。上一篇博文中我們從巨集觀上分析了Linux核心中網路棧的初始化過程,這裡我們再

資料探勘 | 親和性分析

上回講了親和性分析的簡單分析,但只計算了一條規則的支援度和置信度,現在來說說怎麼計算所有規則的支援度和置信度 首先先建立字典,分別建立有效規則字典、無效規則字典以及條件相同的規則數量 # 建立字典,儲存規則有效資料及無效資料 from collection

Hadoop2異常分析:Sqoop匯出資料錯誤

sqoop錯誤: Error during import: No primary key could be found for table tab1. Please specify one with 

mini2440 usb host device controller驅動分析 -----資料urb的收發流程

這節分析urb的收發流程。 我們首先知道對於usb device 來講,讀寫資料用到的是usb_request。而對於usb host來講,讀寫資料用到的是urb,有些類似於網路中skbuff。 無論是進行 讀還是寫 用到的函式都是 usb_submit_urb。在urb結