成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

大數(shù)據(jù) 數(shù)據(jù)分析
最近看了新周刊的一篇推送,有關(guān)地鐵名字的分析。于是乎也想著自己去獲取數(shù)據(jù),然后進(jìn)行分析一番。當(dāng)然分析水平不可能和他們的相比,畢竟文筆擺在那里,也就那點(diǎn)水平。

最近看了新周刊的一篇推送,有關(guān)地鐵名字的分析。于是乎也想著自己去獲取數(shù)據(jù),然后進(jìn)行分析一番。

當(dāng)然分析水平不可能和他們的相比,畢竟文筆擺在那里,也就那點(diǎn)水平。

大家看著樂呵就好,能提高的估摸著也就只有數(shù)據(jù)的準(zhǔn)確性啦。

文中所用到的地鐵站數(shù)據(jù)并沒有去重,對(duì)于換乘站,含有大量重復(fù)。

即使作者一直在強(qiáng)調(diào)換乘站占比很小,影響不是很大。

但于我而言,去除重復(fù)數(shù)據(jù)還是比較簡(jiǎn)單的。

然后照著人家的路子去分析,多學(xué)習(xí)一下。

一、獲取分析

地鐵信息獲取從高德地圖上獲取。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

上面主要獲取城市的「id」,「cityname」及「名稱」。

用于拼接請(qǐng)求網(wǎng)址,進(jìn)而獲取地鐵線路的具體信息。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

找到請(qǐng)求信息,獲取各個(gè)城市的地鐵線路以及線路中站點(diǎn)詳情。

二、數(shù)據(jù)獲取

具體代碼如下。

  1. import json 
  2. import requests 
  3. from bs4 import BeautifulSoup 
  4.  
  5. headers = {'user-agent''Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
  6.  
  7.  
  8. def get_message(ID, cityname, name): 
  9.     ""
  10.     地鐵線路信息獲取 
  11.     ""
  12.     url = 'http://map.amap.com/service/subway?_1555502190153&srhdata=' + ID + '_drw_' + cityname + '.json' 
  13.     response = requests.get(url=url, headers=headers) 
  14.     html = response.text 
  15.     result = json.loads(html) 
  16.     for i in result['l']: 
  17.         for j in i['st']: 
  18.             # 判斷是否含有地鐵分線 
  19.             if len(i['la']) > 0: 
  20.                 print(name, i['ln'] + '(' + i['la'] + ')', j['n']) 
  21.                 with open('subway.csv''a+', encoding='gbk'as f: 
  22.                     f.write(name + ',' + i['ln'] + '(' + i['la'] + ')' + ',' + j['n'] + '\n'
  23.             else
  24.                 print(name, i['ln'], j['n']) 
  25.                 with open('subway.csv''a+', encoding='gbk'as f: 
  26.                     f.write(name + ',' + i['ln'] + ',' + j['n'] + '\n'
  27.  
  28.  
  29. def get_city(): 
  30.     ""
  31.     城市信息獲取 
  32.     ""
  33.     url = 'http://map.amap.com/subway/index.html?&1100' 
  34.     response = requests.get(url=url, headers=headers) 
  35.     html = response.text 
  36.     # 編碼 
  37.     html = html.encode('ISO-8859-1'
  38.     html = html.decode('utf-8'
  39.     soup = BeautifulSoup(html, 'lxml'
  40.     # 城市列表 
  41.     res1 = soup.find_all(class_="city-list fl")[0] 
  42.     res2 = soup.find_all(class_="more-city-list")[0] 
  43.     for i in res1.find_all('a'): 
  44.         # 城市ID值 
  45.         ID = i['id'
  46.         # 城市拼音名 
  47.         cityname = i['cityname'
  48.         # 城市名 
  49.         name = i.get_text() 
  50.         get_message(ID, cityname, name
  51.     for i in res2.find_all('a'): 
  52.         # 城市ID值 
  53.         ID = i['id'
  54.         # 城市拼音名 
  55.         cityname = i['cityname'
  56.         # 城市名 
  57.         name = i.get_text() 
  58.         get_message(ID, cityname, name
  59.  
  60.  
  61. if __name__ == '__main__'
  62.     get_city() 

***成功獲取數(shù)據(jù)。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

包含換乘站數(shù)據(jù),一共3541個(gè)地鐵站點(diǎn)。

二、數(shù)據(jù)可視化

先對(duì)數(shù)據(jù)進(jìn)行清洗,去除重復(fù)的換乘站信息。

  1. from wordcloud import WordCloud, ImageColorGenerator 
  2. from pyecharts import Line, Bar 
  3. import matplotlib.pyplot as plt 
  4. import pandas as pd 
  5. import numpy as np 
  6. import jieba 
  7.  
  8. # 設(shè)置列名與數(shù)據(jù)對(duì)齊 
  9. pd.set_option('display.unicode.ambiguous_as_wide'True
  10. pd.set_option('display.unicode.east_asian_width'True
  11. # 顯示10行 
  12. pd.set_option('display.max_rows', 10) 
  13. # 讀取數(shù)據(jù) 
  14. df = pd.read_csv('subway.csv', header=None, names=['city''line''station'], encoding='gbk'
  15. # 各個(gè)城市地鐵線路情況 
  16. df_line = df.groupby(['city''line']).count().reset_index() 
  17. print(df_line) 

通過城市及地鐵線路進(jìn)行分組,得到全國(guó)地鐵線路總數(shù)。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

一共183條地鐵線路。

  1. def create_map(df): 
  2.     # 繪制地圖 
  3.     value = [i for i in df['line']] 
  4.     attr = [i for i in df['city']] 
  5.     geo = Geo("已開通地鐵城市分布情況", title_pos='center', title_top='0', width=800, height=400, title_color="#fff", background_color="#404a59", ) 
  6.     geo.add("", attr, value, is_visualmap=True, visual_range=[0, 25], visual_text_color="#fff", symbol_size=15) 
  7.     geo.render("已開通地鐵城市分布情況.html"
  8.  
  9.  
  10. def create_line(df): 
  11.     ""
  12.     生成城市地鐵線路數(shù)量分布情況 
  13.     ""
  14.     title_len = df['line'
  15.     bins = [0, 5, 10, 15, 20, 25] 
  16.     level = ['0-5''5-10''10-15''15-20''20以上'
  17.     len_stage = pd.cut(title_len, bins=bins, labels=level).value_counts().sort_index() 
  18.     # 生成柱狀圖 
  19.     attr = len_stage.index 
  20.     v1 = len_stage.values 
  21.     bar = Bar("各城市地鐵線路數(shù)量分布", title_pos='center', title_top='18', width=800, height=400) 
  22.     bar.add("", attr, v1, is_stack=True, is_label_show=True
  23.     bar.render("各城市地鐵線路數(shù)量分布.html"
  24.  
  25.  
  26. # 各個(gè)城市地鐵線路數(shù) 
  27. df_city = df_line.groupby(['city']).count().reset_index().sort_values(by='line', ascending=False
  28. print(df_city) 
  29. create_map(df_city) 
  30. create_line(df_city) 

已經(jīng)開通地鐵的城市數(shù)據(jù),還有各個(gè)城市的地鐵線路數(shù)。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

一共32個(gè)城市開通地鐵,其中北京、上海線路已經(jīng)超過了20條。

城市分布情況。

[[263955]]

大部分都是省會(huì)城市,還有個(gè)別經(jīng)濟(jì)實(shí)力強(qiáng)的城市。

線路數(shù)量分布情況。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

可以看到大部分還是在「0-5」這個(gè)階段的,當(dāng)然最少為1條線。

  1. # 哪個(gè)城市哪條線路地鐵站最多 
  2. print(df_line.sort_values(by='station', ascending=False)) 

探索一下哪個(gè)城市哪條線路地鐵站最多。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

北京10號(hào)線***,重慶3號(hào)線第二。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

還是蠻懷念北京1張票,2塊錢地鐵隨便做的時(shí)候。

可惜好日子一去不復(fù)返了。

去除重復(fù)換乘站數(shù)據(jù)。

  1. # 去除重復(fù)換乘站的地鐵數(shù)據(jù) 
  2. df_station = df.groupby(['city''station']).count().reset_index() 
  3. print(df_station) 

一共包含3034個(gè)地鐵站,相較新周刊中3447個(gè)地鐵站數(shù)據(jù)。

減少了近400個(gè)地鐵站。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

接下來看一下哪個(gè)城市地鐵站最多。

  1. # 統(tǒng)計(jì)每個(gè)城市包含地鐵站數(shù)(已去除重復(fù)換乘站) 
  2. print(df_station.groupby(['city']).count().reset_index().sort_values(by='station', ascending=False)) 

32個(gè)城市,上海***,北京第二。

沒想到的是,武漢居然有那么多地鐵站。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

現(xiàn)在來實(shí)現(xiàn)一下新周刊中的操作,生成地鐵名詞云。

  1. def create_wordcloud(df): 
  2.     ""
  3.     生成地鐵名詞云 
  4.     ""
  5.     # 分詞 
  6.     text = '' 
  7.     for line in df['station']: 
  8.         text += ' '.join(jieba.cut(line, cut_all=False)) 
  9.         text += ' ' 
  10.     backgroud_Image = plt.imread('rocket.jpg'
  11.     wc = WordCloud( 
  12.         background_color='white'
  13.         mask=backgroud_Image, 
  14.         font_path='C:\Windows\Fonts\華康儷金黑W8.TTF'
  15.         max_words=1000, 
  16.         max_font_size=150, 
  17.         min_font_size=15, 
  18.         prefer_horizontal=1, 
  19.         random_state=50, 
  20.     ) 
  21.     wc.generate_from_text(text) 
  22.     img_colors = ImageColorGenerator(backgroud_Image) 
  23.     wc.recolor(color_func=img_colors) 
  24.     # 看看詞頻高的有哪些 
  25.     process_word = WordCloud.process_text(wc, text) 
  26.     sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True
  27.     print(sort[:50]) 
  28.     plt.imshow(wc) 
  29.     plt.axis('off'
  30.     wc.to_file("地鐵名詞云.jpg"
  31.     print('生成詞云成功!'
  32.  
  33.  
  34. create_wordcloud(df_station) 

詞云圖如下。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

廣場(chǎng)、大道、公園占了前三,和新周刊的圖片一樣,說明分析有效。

  1. words = [] 
  2. for line in df['station']: 
  3.     for i in line: 
  4.         # 將字符串輸出一個(gè)個(gè)中文 
  5.         words.append(i) 
  6.  
  7.  
  8. def all_np(arr): 
  9.     ""
  10.     統(tǒng)計(jì)單字頻率 
  11.     ""
  12.     arr = np.array(arr) 
  13.     key = np.unique(arr) 
  14.     result = {} 
  15.     for k in key
  16.         mask = (arr == k) 
  17.         arr_new = arr[mask] 
  18.         v = arr_new.size 
  19.         result[k] = v 
  20.     return result 
  21.  
  22.  
  23. def create_word(word_message): 
  24.     ""
  25.     生成柱狀圖 
  26.     ""
  27.     attr = [j[0] for j in word_message] 
  28.     v1 = [j[1] for j in word_message] 
  29.     bar = Bar("中國(guó)地鐵站***用的字", title_pos='center', title_top='18', width=800, height=400) 
  30.     bar.add("", attr, v1, is_stack=True, is_label_show=True
  31.     bar.render("中國(guó)地鐵站***用的字.html"
  32.  
  33.  
  34. word = all_np(words) 
  35. word_message = sorted(word.items(), key=lambda x: x[1], reverse=True)[:10] 
  36. create_word(word_message) 

統(tǒng)計(jì)一下,大家最喜歡用什么字來命名地鐵。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

路最多,在此之中上海的占比很大。

不信往下看。

  1. # 選取上海的地鐵站 
  2. df1 = df_station[df_station['city'] == '上海'
  3. print(df1) 

統(tǒng)計(jì)上海所有的地鐵站,一共345個(gè)。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

選取包含路的地鐵站。

  1. # 選取上海地鐵站名字包含路的數(shù)據(jù) 
  2. df2 = df1[df1['station'].str.contains('路')] 
  3. print(df2) 

有210個(gè),約占上海地鐵的三分之二,路的七分之二。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

看來上海對(duì)路是情有獨(dú)鐘的。

具體緣由這里就不解釋了,詳情見新周刊的推送,里面還是講解蠻詳細(xì)的。

武漢和重慶則是對(duì)家這個(gè)詞特別喜歡。

標(biāo)志著那片土地開拓者們的籍貫與姓氏。

  1. # 選取武漢的地鐵站 
  2. df1 = df_station[df_station['city'] == '武漢'
  3. print(df1) 
  4. # 選取武漢地鐵站名字包含家的數(shù)據(jù) 
  5. df2 = df1[df1['station'].str.contains('家')] 
  6. print(df2) 
  7.  
  8. # 選取重慶的地鐵站 
  9. df1 = df_station[df_station['city'] == '重慶'
  10. print(df1) 
  11. # 選取重慶地鐵站名字包含家的數(shù)據(jù) 
  12. df2 = df1[df1['station'].str.contains('家')] 
  13. print(df2) 

武漢共有17個(gè),重慶共有20個(gè)。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

看完家之后,再來看一下名字包含門的地鐵站。

  1. def create_door(door): 
  2.     ""
  3.     生成柱狀圖 
  4.     ""
  5.     attr = [j for j in door['city'][:3]] 
  6.     v1 = [j for j in door['line'][:3]] 
  7.     bar = Bar("地鐵站***用“門”命名的城市", title_pos='center', title_top='18', width=800, height=400) 
  8.     bar.add("", attr, v1, is_stack=True, is_label_show=True, yaxis_max=40) 
  9.     bar.render("地鐵站***用門命名的城市.html"
  10.  
  11.  
  12. # 選取地鐵站名字包含門的數(shù)據(jù) 
  13. df1 = df_station[df_station['station'].str.contains('門')] 
  14. # 對(duì)數(shù)據(jù)進(jìn)行分組計(jì)數(shù) 
  15. df2 = df1.groupby(['city']).count().reset_index().sort_values(by='line', ascending=False
  16. print(df2) 
  17. create_door(df2) 

一共有21個(gè)城市,地鐵站名包含門。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

其中北京,南京,西安作為多朝古都,占去了大部分。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

具體的地鐵站名數(shù)據(jù)。

  1. # 選取北京的地鐵站 
  2. df1 = df_station[df_station['city'] == '北京'
  3. # 選取北京地鐵站名字包含門的數(shù)據(jù) 
  4. df2 = df1[df1['station'].str.contains('門')] 
  5. print(df2) 
  6.  
  7. # 選取南京的地鐵站 
  8. df1 = df_station[df_station['city'] == '南京'
  9. # 選取南京地鐵站名字包含門的數(shù)據(jù) 
  10. df2 = df1[df1['station'].str.contains('門')] 
  11. print(df2) 
  12.  
  13. # 選取西安的地鐵站 
  14. df1 = df_station[df_station['city'] == '西安'
  15. # 選取西安地鐵站名字包含門的數(shù)據(jù) 
  16. df2 = df1[df1['station'].str.contains('門')] 
  17. print(df2) 

輸出如下。

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

183條地鐵線路,3034個(gè)地鐵站,發(fā)現(xiàn)中國(guó)地鐵名字的秘密

三、總結(jié)

源碼及相關(guān)文件已上傳GitHub,點(diǎn)擊閱讀原文即可獲取。

這里摘一段新周刊的話。

可以說,一個(gè)小小的地鐵名就是一座城市風(fēng)貌的一部分。

它反映著不同地方的水土,也承載著各個(gè)城市的文化和歷史。

確實(shí)如此,靠山的城市地鐵名多“山”,靠水的城市地鐵名“含水量”則是杠杠的。

責(zé)任編輯:未麗燕 來源: 法納斯特
相關(guān)推薦

2022-07-31 15:46:30

Web自動(dòng)智能停車

2016-07-05 17:47:53

華為

2014-07-18 09:10:56

免費(fèi)Wi-Fi

2012-12-29 16:38:41

搜狗地圖

2016-01-27 14:47:02

云監(jiān)控華為

2024-10-08 15:16:23

SQL地鐵換乘數(shù)據(jù)庫(kù)

2019-06-24 15:55:59

地鐵線路擁擠

2016-06-08 14:47:17

高德

2014-12-17 09:16:33

漏洞北京地鐵系統(tǒng)

2012-07-09 09:54:57

Wi-Fi倫敦奧運(yùn)

2017-09-07 16:37:11

華為

2017-12-07 08:03:54

華為

2021-02-22 19:06:17

數(shù)字人民幣數(shù)字貨幣區(qū)塊鏈

2016-09-08 13:16:51

銳捷

2014-01-23 10:59:54

地鐵通

2015-06-25 17:26:52

京港地鐵華為

2020-08-26 10:25:16

智慧

2016-07-11 15:55:18

大數(shù)據(jù)

2017-09-21 12:12:45

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99国产视频 | 成人精品免费视频 | 国产精品无码久久久久 | 伊人网伊人 | 综合色播| 狠狠涩| 亚洲精品在线免费观看视频 | 久久精品欧美一区二区三区不卡 | 人人鲁人人莫人人爱精品 | 午夜理伦三级理论三级在线观看 | 欧美久久久久久久 | 欧美精品久久久久久久久老牛影院 | 中文一区二区视频 | 91在线网站| 午夜视频一区二区 | 91综合网 | 欧美午夜精品久久久久久浪潮 | 在线成人 | 日韩午夜电影在线观看 | 国产精品乱码一区二区三区 | 亚洲欧美日韩在线 | 国产在线视频一区二区董小宛性色 | 国产精品亚洲视频 | 亚洲精品天堂 | 日韩中文一区二区三区 | 欧美日韩一区二区在线观看 | 97超碰成人 | 免费特黄视频 | 国产综合久久 | 亚洲天堂av在线 | 中国一级大黄大片 | 国产成人jvid在线播放 | 午夜免费福利电影 | 欧美 日韩 国产 成人 在线 | 亚洲性人人天天夜夜摸 | 91一区| 亚洲一二三区精品 | 一级黄色片免费在线观看 | 尤物在线 | 久草在线 | 欧美日韩一区精品 |