python列表姓氏_python數據分析實例(六) 中國姓氏數據

bokeh聯動柱狀圖,Excel空間柱狀圖、空間熱力圖,Echarts空間柱狀圖,常用函數:

df['工作地_省'] = df['工作地'].str.split('省').str[0]

df['工作地_市'] = ''

df['工作地_市']= df['工作地'].str.split('省').str[1].str.split('市').str[0]

df['工作地_市'][df['工作地_省'].str.len() >= 5] = df['工作地_省'].str.split('市').str[0]

data_wang1 = df[df['姓'] == '王']

writer = pd.ExcelWriter('C:/Users/Administrator/Desktop/wang1.xlsx')

data_wang1.to_excel(writer,'sheet1',index=False)

writer.save()

price11middle_SSS_top_95['zkl_range'] = price11middle_SSS_top_95['zkl_range'].astype(str)一,concat上下合并數據,merge左右合并數據

二, x=各姓,y= 個數 /占比 bokeh聯動柱狀圖

三, x=各地,y= 王姓個數 Excel空間柱狀圖、空間熱力圖

四, x=各地,y= 王姓個數 Echarts空間柱狀圖

一,concat上下合并數據,merge左右合并數據 .str.split('省').str[0]

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import warnings

warnings.filterwarnings('ignore')

# 不發出警告

from bokeh.plotting import figure,show

from bokeh.models import ColumnDataSource

# 導入圖表繪制、圖標展示模塊

# 導入ColumnDataSource模塊

import os

os.chdir('C:/Users/Administrator/Desktop/')

# 創建工作路徑

#

df01 = pd.read_csv('data01.csv',encoding = 'utf-8')

df02 = pd.read_csv('data02.csv',encoding = 'utf-8')

df_city = pd.read_excel('中國行政代碼對照表.xlsx')

# 讀取數據

df = pd.concat([df01,df02])

df.to_csv('preliminary.csv')

df = pd.read_csv('preliminary.csv', index_col=0)

df = pd.merge(df,df_city,left_on='戶籍地城市編號',right_on = '行政編碼')

df['工作地'] = df['工作地'].str[:15] # 只提取工作地前15個字符即可

del df['行政編碼']

del df['戶籍地城市編號']

# 合并數據,添加經緯度字段

# 刪除無用字段

# 分別提取“工作地”中的省、市、區縣

# 新建字段“工作地-省”,“工作地-市”,“工作地-區縣”,如果數據中“工作地”字段無法提取省和市,則用“未識別”填充單元格

# *通過查看識別后的單元格,如果字數超過5則為“未識別”

df['工作地_省'] = df['工作地'].str.split('省').str[0]

# 識別工作地-省

df['工作地_市'] = ''

df['工作地_市']= df['工作地'].str.split('省').str[1].str.split('市').str[0]

df['工作地_市'][df['工作地_省'].str.len() >= 5] = df['工作地_省'].str.split('市').str[0]

# 識別工作地-市

# 在未識別出省的數據中,可能會有市的信息

df['工作地_區縣'] = ''

df['工作地_區縣'][(df['工作地_市'].str.len() < 5)&(df['工作地'].str.contains('區'))] = df['工作地'].str.split('市').str[1].str.split('區').str[0] + '區'

df['工作地_區縣'][(df['工作地_市'].str.len() > 5)&(df['工作地'].str.contains('區'))] = df['工作地'].str.split('區').str[0] + '區'

df['工作地_區縣'][(df['工作地_市'].str.len() < 5)&(df['工作地'].str.contains('縣'))] = df['工作地'].str.split('市').str[1].str.split('縣').str[0] + '縣'

df['工作地_區縣'][(df['工作地_市'].str.len() > 5)&(df['工作地'].str.contains('縣'))] = df['工作地'].str.split('縣').str[0] + '縣'

#### 識別工作地-區縣

###

df['工作地_省'][df['工作地_省'].str.len() > 5 ] = '未識別'

df['工作地_市'][df['工作地_市'].str.len() > 5 ] = '未識別'

df['工作地_區縣'][(df['工作地_區縣'].str.len() > 5) | (df['工作地_區縣'].str.len() < 2)] = '未識別'

df['工作地_市'][df['工作地_市'].str.len() <= 1 ] = '未識別'

df['工作地_省'][df['工作地_省'].str.len() <= 1 ] = '未識別'

## 整理未識別單元格

#

df.columns = ['姓','工作地','戶籍所在地_省','戶籍所在地_市','戶籍所在地_區縣','戶籍所在地_lng','戶籍所在地_lat',

'工作地_省','工作地_市','工作地_區縣']

print('讀取數據共%i條' % len(df))

## 數據整理

shenrufeng = df[:100]

print('finished')

二, x=各姓,y= 個數 /占比 bokeh聯動柱狀圖

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import warnings

warnings.filterwarnings('ignore')

# 不發出警告

import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['KaiTi']

mpl.rcParams['font.serif'] = ['KaiTi']

mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題,或者轉換負號為字符串,中文不顯

import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['KaiTi']

mpl.rcParams['font.serif'] = ['KaiTi']

mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題,或者轉換負號為字符串,中文不顯

from bokeh.plotting import figure,show,output_file

from bokeh.models import ColumnDataSource

# 導入圖表繪制、圖標展示模塊

# 導入ColumnDataSource模塊

import os

os.chdir('C:/Users/Administrator/Desktop/')

name_count = df['姓'].value_counts()

result1_01 = pd.DataFrame({'count':name_count, 'count_pre':name_count/name_count.sum()})[:20]

#result1_01.iloc[:20].plot(kind = 'bar',rot = 0,figsize = (10,6))

# bokeh出聯動柱狀圖

from bokeh.models import HoverTool

from bokeh.layouts import gridplot

output_file("line66.html")

# 導入模塊

name_lst = result1_01.index.tolist()

result1_01.index.name = 'index'

source = ColumnDataSource(result1_01)

# 創建ColumnDataSource數據

hover1 = HoverTool(tooltips=[("姓氏計數", "@count")]) # 設置標簽顯示內容

result1 = figure(plot_width=800, plot_height=250,x_range = name_lst,

title="中國姓氏TOP20 - 計數" ,

tools=[hover1,'reset,xwheel_zoom,pan']) # 構建繪圖空間

result1.vbar(x='index', top='count', source=source,width=0.9, alpha = 0.7,color = 'red')

result1.ygrid.grid_line_dash = [6, 4]

result1.xgrid.grid_line_dash = [6, 4]

# 柱狀圖1

hover2 = HoverTool(tooltips=[("姓氏占比", "@count_pre")]) # 設置標簽顯示內容

result2 = figure(plot_width=800, plot_height=250,x_range = result1.x_range,

title="中國姓氏TOP20 - 占比" ,

tools=[hover2,'reset,xwheel_zoom,pan'])

result2.vbar(x='index', top='count_pre', source=source,width=0.9, alpha = 0.7,color = 'green')

result2.ygrid.grid_line_dash = [6, 4]

result2.xgrid.grid_line_dash = [6, 4]

# 柱狀圖2

p = gridplot([[result1], [result2]])

# 組合圖表

show(p)

三, Excel空間柱狀圖 Excel空間熱力圖

data_wang1 = df[df['姓'] == '王']

writer = pd.ExcelWriter('C:/Users/Administrator/Desktop/wang1.xlsx')

data_wang1.to_excel(writer,'sheet1',index=False)

writer.save()

# 導出數據1

四, Echarts空間柱狀圖

①, 導出數據

data_wang2 = data_wang1.groupby(['戶籍所在地_lng','戶籍所在地_lat','戶籍所在地_市'])['姓'].count()

data_wang2 = data_wang2.reset_index()

data_wang2.columns= ['lng', 'lat', 'name', 'value']

data_wang2=data_wang2[['name', 'lng', 'lat', 'value']]

writer = pd.ExcelWriter('C:/Users/Administrator/Desktop/wang2.xlsx')

data_wang2.to_excel(writer,'sheet1',index=False)

writer.save()

# 導出數據2

print('導出完成!')

②, 轉成json

import pandas as pd

import os

os.chdir('C:\\Users\\Administrator\\Desktop\\') # 輸入文件所在路徑,例如:'C:/Users/Desktop/'

data = pd.read_excel('wang2.xlsx', sheet_name=0,header=0)

datajs = data.to_json(orient='records',force_ascii=False)

print('轉換后數據為:\n',datajs)

[{"name":"信陽","lng":-1.0,"lat":-1.0,"value":14},{"name":"包頭","lng":-1.0,"lat":-1.0,"value":3},{"name":"呼倫貝爾","lng":-1.0,"lat":-1.0,"value":1},——————{"name":"雞西","lng":133.1211060726,"lat":45.9972762035,"value":10},{"name":"佳木斯","lng":133.2733283638,"lat":47.8336846866,"value":5},{"name":"雙鴨山","lng":133.7292586825,"lat":47.0726285429,"value":8},{"name":"佳木斯","lng":134.296044164,"lat":47.9261051999,"value":5}]

③, 拾取中心點坐標在線地圖經度緯度查詢 - 經緯度查詢地名|地名查詢經緯度 -GPSspg?www.gpsspg.com

④, mapstyle 與mapAccessToken設置https://www.mapbox.com/?www.mapbox.com

⑤, 導出html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372302.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaFX 2 GameTutorial第3部分

介紹 ?他是與一個六個部分組成的系列的第3部分的JavaFX 2游戲教程。 如果您錯過了第1部分和第2部分 &#xff0c;建議您在開始本教程之前先進行閱讀。 回顧第二部分&#xff0c;我討論了游戲循環的內部工作原理&#xff0c;其中我們使用動畫&#xff08;JavaFX Timeline &…

Selenium WebDriver + python 自動化測試框架

目標 組內任何人都可以進行自動化測試用例的編寫 完全分離測試用例和自動化測試代碼&#xff0c;就像寫手工測試用例一下&#xff0c;編寫excel格式的測試用例&#xff0c;包括步驟、檢查點&#xff0c;然后執行自動化工程&#xff0c;即可執行功能自動化測試用例&#xff0c;包…

mysql游戲減少積分活動圖_plantuml-繪制狀態圖和活動圖和部署圖?

背景狀態圖&#xff1a;對象的所有狀態&#xff0c;以及基于事件發生的狀態改變的過程&#xff1b;活動圖&#xff1a;用例的工作流程&#xff1b;部署圖&#xff1a;系統的軟硬件物理體系結構&#xff1b;狀態圖基本語法元素語法說明開始和結束狀態[*]標識開始和結束狀態箭頭-…

windows中當你的鍵盤無法使用時我們可以用另一種方法哦

1.使用WinR打開cmd窗口 2.輸入osk回車就出現了一個虛擬的小鍵盤啦&#xff0c;當你的鍵盤壞掉后非常實用哦 轉載于:https://www.cnblogs.com/qianzf/p/6780496.html

python web.py 404_找不到web.py開發服務器-favicon.ico-404

py API文檔引用了一個“web.SEE OTHER()”函數&#xff0c;該函數生成一個303 SEE OTHER響應&#xff0c;將瀏覽器重定向到另一個位置。(請參見http://webpy.org/docs/0.3/api#web.application)這是一個服務器端的解決方案&#xff0c;它不需要在html文件中更改頭&#xff1b;如…

NetBeans 7.2引入了TestNG

代碼生成的優點之一是能夠查看如何使用特定的語言功能或框架。 正如我在《 NetBeans 7.2 beta&#xff1a;更快&#xff0c;更有用》一文中所討論的那樣&#xff0c; NetBeans 7.2 beta提供了TestNG集成 。 除了對該功能的單一引用之外&#xff0c;我在該帖子中沒有進一步闡述&…

Javascript模塊化編程(三):require.js的用法

一、為什么要用require.js&#xff1f; 最早的時候&#xff0c;所有Javascript代碼都寫在一個文件里面&#xff0c;只要加載這一個文件就夠了。后來&#xff0c;代碼越來越多&#xff0c;一個文件不夠了&#xff0c;必須分成多個文件&#xff0c;依次加載。下面的網頁代碼&…

[KISSY5系列]淘寶全終端框架 KISSY 5--從零開始使用

KISSY 是淘寶一個開源的 JavaScript 庫&#xff0c;包含的組件有&#xff1a;日歷、圖片放大鏡、卡片切換、彈出窗口、輸入建議等 一、簡介 KISSY 是一款跨終端、模塊化、高性能、使用簡單的 JavaScript 框架。 除了完備的工具集合如 DOM、Event、Ajax、Anim 等它還提供了經典的…

幾萬條數據的excel導入到mysql_【記錄】2萬多條數據的Excel表格數據導入mysql數據庫...

主題剛開始的時候做了兩個小方案&#xff01;第一個是直接Excel處理完導入&#xff0c;但是這個導入的話雖然簡單出錯率很大&#xff01;第二個是想直接用php做個小程序直接導入數據&#xff0c;但是想了想2萬條數據處理&#xff0c;百分之百瀏覽器會一直轉&#xff0c;最后不知…

JDeveloper中的Java反編譯器

Java Decompiler是一個獨立的圖形實用程序&#xff0c;顯示“ .class”文件的Java源代碼。 下面是Java Decompiler程序的快照 您可以從這里下載該程序 我將說明如何將此程序用作Jdeveloper中的外部工具 Java Decompiler和Jdeveloper之間的集成 您可以將此程序添加到Jdevelo…

NGUI學習隨筆

一、NGUI的直接用法 1. Attach a Collider&#xff1a;表示為NGUI的某些物體添加碰撞器&#xff0c;如果界面是用NGUI做的&#xff0c;只能這樣添加。&#xff08;注&#xff1a;用Component添加無效&#xff09;。2. Attach an Anchor&#xff1a;表示為該物體添加了…

Git 修改源地址

git remote set-url origin http://git.xxx.com/xxx/repo.git 轉載于:https://www.cnblogs.com/savokiss/p/5892543.html

mysql主從進行擴展_MySQL 主從擴展

MySQL 主從擴展常見問題排查1. 數據不一致:SHOW SLAVE STATUS \G;Last_Errno:1062Last_Error:ErrorDuplicate entryxxxn-66-77for key1on query.Defaultdatabase:guild.Query:insert into pynpcrecord setMapCode xxxn, UpdateTime 2015-08-0700:00:32解決方法: 在從庫上將重復…

JRockit – JRCMD有用的命令

自2007年以來&#xff0c;我一直在使用JRockit。我發現它比Hotspot速度慢&#xff0c;但在診斷和分析問題上總是更好。 從去年夏天開始&#xff0c;我一直在為一家國際電信系統供應商工作。 我們在HP OpenCall Convergent Communication Platform之上為電信運營商設計和實施各種…

Spark Streaming整合logstash + Kafka wordCount

1、安裝logstash&#xff0c;直接解壓即可 測試logstash是否可以正常運行 bin/logstash -e input { stdin { } } output { stdout {codec > rubydebug } } 只獲取消息 bin/logstash -e input { stdin { } } output { stdout {codec > plain { format > "%{messag…

js 變量類型

變量類型分為&#xff1a;基礎類型和引用類型 基礎類型&#xff1a;boolean, string, number, null, undefined, symbol 引用類型&#xff1a; array, object typeof: 判斷變量的類型instanceof:判斷某個對象是否是另外一個對象的實例主要還是理解這兩個判斷的不同之處&#xf…

python 相對導入_python 相對導入與絕對導入

Python 相對導入與絕對導入Python | Jul 21, 2016 | pythonPython 相對導入與絕對導入&#xff0c;這兩個概念是相對于包內導入而言的。包內導入即是包內的模塊導入包內部的模塊。Python import 的搜索路徑1.在當前目錄下搜索該模塊2.在環境變量 sys.path 中指定的路徑列表中依…

具有Java Kickstart的MongoDB

NoSQL數據庫由于其可伸縮性而變得越來越流行。 適當使用時 NoSQL數據庫可以提供真正的好處。 MongoDB是使用C 編寫的高度可擴展的開源NoSQL數據庫。 1.安裝MongoDB 您可以根據所使用的操作系統&#xff0c;按照MongoDB官方網站上的說明安裝MongoDB&#xff0c;而不會遇到很多麻…

Linux Shell——函數的使用

文/一介書生&#xff0c;一枚碼農。 scripts are for lazy people. 函數是存在內存里的一組代碼的命名的元素。函數創建于腳本運行環境之中&#xff0c;并且可以執行。 函數的語法結構為&#xff1a; function <function-name> {<code to execute> } 創建函數不需要…

FFmpeg學習2:解碼數據結構及函數總結

在上一篇文章中&#xff0c;對FFmpeg的視頻解碼過程做了一個總結。由于才接觸FFmpeg&#xff0c;還是挺陌生的&#xff0c;這里就解碼過程再做一個總結。本文的總結分為以下兩個部分&#xff1a; 數據讀取&#xff0c;主要關注在解碼過程中所用到的FFmpeg中的結構體。解碼過程中…