<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天來跟大家分析一下2020年中國500強企業排行榜資料,從不同角度去對資料進行統計分析,視覺化展示。
主要分析內容:
中國500強企業-省份分佈。
中國500強企業-營業收入年增率。
中國500強企業-營業收入年減率。
中國500強企業-利潤年增率。
中國500強企業-利潤年減率。
中國500強企業-排名上升最快。
中國500強企業-排名下降最快。
中國500強企業-資產區間分佈。
中國500強企業-市值區間分佈。
中國500強企業-營業收入區間分佈。
中國500強企業-利潤區間分佈。
中國500強企業-排名前10營業收入、利潤、資產、市值、股東權益等情況。
下面開始從資料採集到資料統計分析,最後進行視覺化!!!
url="http://www.fortunechina.com/fortune500/c/2020-07/27/content_369925.htm" res = requests.get(url,headers=headers) res.encoding = 'utf-8' text = res.text
for i in range(0,len(table_tr)): try: #name = i.xpath('.//td/a/text()')[0] href = table_tr[i].xpath('.//td/a/@href')[0].replace("../../../../","http://www.fortunechina.com/") column_list = get_detail(href) for k in range(0,len(column_list)): outws.cell(row=count, column=k+1, value=column_list[k]) print(count) count = count+1 except: pass
name = selector.xpath('//*[@class="comp-name"]/text()')[0] r1 = selector.xpath('//*[@class="con"]/em[@class="r1"]/text()')[0] r2 = selector.xpath('//*[@class="con"]/span/em/font[@class="ft-red"]/text()')[0] address = selector.xpath('//*[@class="info"]/p')[0].xpath('.//text()')[0].replace(" ", "") table_tbody_tr = selector.xpath('//*[@class="table"]/table/tr')
outwb = openpyxl.Workbook() outws = outwb.create_sheet(index=0) outws.cell(row=1, column=1, value="企業名稱") outws.cell(row=1, column=2, value="2020年排名") outws.cell(row=1, column=3, value="2019年排名") outws.cell(row=1, column=4, value="總部地址") outws.cell(row=1, column=5, value="營業收入") outws.cell(row=1, column=6, value="營業收入年增減") outws.cell(row=1, column=7, value="利潤") outws.cell(row=1, column=8, value="利潤年增減") outws.cell(row=1, column=9, value="資產") outws.cell(row=1, column=10, value="市值") outws.cell(row=1, column=11, value="股東權益") outwb.save("中國500強排行榜資料.xlsx") # 儲存
資料就已經儲存到Excel中,下面開始進行統計分析,視覺化!
from pyecharts import options as opts from pyecharts.charts import Line from pyecharts.charts import Map import pandas as pd from pyecharts import options as opts from pyecharts.globals import ThemeType from pyecharts.charts import Bar
從excel中中取出:總部地址,然後取出前兩位(省份),統計每一個省份的500強分佈情況
address = pd_data['總部地址'] address = address.tolist() address_03 = [] for i in address: ###取省份(前兩位) address_03.append(i[0:2]) data =[] address_03_set = set(address_03) #address_03_set是另外一個列表,裡面的內容是address_03裡面的無重複 項 for item in address_03_set: data.append((item,address_03.count(item)))
def map_china() -> Map: c = ( Map() .add(series_name="企業數量", data_pair=data, maptype="china",zoom = 1,center=[105,38]) .set_global_opts( title_opts=opts.TitleOpts(title="中國500強企業省份分佈"), visualmap_opts=opts.VisualMapOpts(max_=9999,is_piecewise=True, pieces=[{"max": 9, "min": 0, "label": "0-9","color":"#FFE4E1"}, {"max": 99, "min": 10, "label": "10-99","color":"#FF7F50"}, {"max": 499, "min": 100, "label": "100-499","color":"#F08080"}, {"max": 999, "min": 500, "label": "500-999","color":"#CD5C5C"}, {"max": 9999, "min": 1000, "label": ">=1000", "color":"#8B0000"}] ) ) ) return c
從excel中中取出:營業收入年增減,統計增加率最大的前50名和減少率(負數)最大的前50名
income_rate = pd_data['營業收入年增減'] compare_name = pd_data['企業名稱'] income_rate = income_rate.tolist() compare_name = compare_name.tolist() m = income_rate # 求一個list中最大的50個數,並排序 max_number = heapq.nlargest(50, m) # 最大的2個數對應的,如果用nsmallest則是求最小的數及其索引 max_index = map(m.index, heapq.nlargest(50, m)) # max_index 直接輸出來不是數,使用list()或者set()均可輸出 #print(set(max_index)) ###{235, 140, 273, 148, 86} max_index = list(set(max_index)) #ss = [m.index(j) for j in max_number] name =[compare_name[k] for k in set(max_index)] outwb = openpyxl.Workbook() outws = outwb.create_sheet(index=0)
income_rate = income_rate.tolist() compare_name = compare_name.tolist() m = income_rate # 求一個list中最小的50個數,並排序 min_number = heapq.nsmallest(60, m) min_index = [m.index(j) for j in min_number] name =[compare_name[k] for k in set(min_index)]
從excel中中取出:利潤年增減,統計增加率最大的前50名和減少率(負數)最大的前50名
從excel中中取出:2020年排名和2019年排名,進行對比,統計排名上升最大的前20家企業,和排名下降最大的前20家企業。
###折線圖 def LinePic(x_data,y_data,name): ( Line() # 進行全域性設定 .set_global_opts( tooltip_opts=opts.TooltipOpts(is_show=True), # 顯示提示資訊,預設為顯示,可以不寫 xaxis_opts=opts.AxisOpts(type_="category"), yaxis_opts=opts.AxisOpts( type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), ) # 新增x軸的點 .add_xaxis(xaxis_data=x_data) # 新增y軸的點 .add_yaxis( series_name=name, y_axis=y_data, symbol="emptyCircle", is_symbol_show=True, label_opts=opts.LabelOpts(is_show=True), ) # 儲存為一個html檔案 .render(name+".html") )
從excel中中取出:資產,為9000 間隔進行區間劃分,並統計每一個區間的個數。
for k, g in groupby(sorted(assets_list), key=lambda x: x // 90000): name.append(str(k * 90000) + "~" + str((k + 1) * 90000 - 1)) dict_value.append(int(len(list(g))))
從excel中中取出:市值,為7000 間隔進行區間劃分,並統計每一個區間的個數。
for k, g in groupby(sorted(assets_list), key=lambda x: x // 7000): name.append(str(k * 7000) + "~" + str((k + 1) * 7000 - 1)) dict_value.append(int(len(list(g))))
從excel中中取出:營業收入,為50000 間隔進行區間劃分,並統計每一個區間的個數。
for k, g in groupby(sorted(assets_list), key=lambda x: x // 50000): name.append(str(k * 50000) + "~" + str((k + 1) * 50000 - 1)) dict_value.append(int(len(list(g))))
從excel中中取出:利潤為5000 間隔進行區間劃分,並統計每一個區間的個數。
for k, g in groupby(sorted(assets_list), key=lambda x: x//5000): name.append(str(k*5000)+"~"+str((k+1)*5000-1)) dict_value.append(int(len(list(g))))
從excel中中取出排名前10: **營業收入、**利潤、資產、市值、股東權益、
name = pd_data['企業名稱'][0:11].tolist() data_1 = pd_data['營業收入'][0:11].tolist() data_2 = pd_data['利潤'][0:11].tolist() data_3 = pd_data['資產'][0:11].tolist() data_4 = pd_data['市值'][0:11].tolist() data_5 = pd_data['股東權益'][0:11].tolist() # 鏈式呼叫 c = ( Bar( init_opts=opts.InitOpts( # 初始設定項 theme=ThemeType.MACARONS, animation_opts=opts.AnimationOpts( animation_delay=1000, animation_easing="cubicOut" # 初始動畫延遲和緩動效果 )) ) .add_xaxis(xaxis_data=name) # x軸 .add_yaxis(series_name="營業收入", yaxis_data=cleardata(data_1)) # y軸 .add_yaxis(series_name="利潤", yaxis_data=cleardata(data_2)) # y軸 .add_yaxis(series_name="資產", yaxis_data=cleardata(data_3)) # y軸 .add_yaxis(series_name="市值", yaxis_data=cleardata(data_4)) # y軸 .add_yaxis(series_name="股東權益", yaxis_data=cleardata(data_5)) # y軸 .set_global_opts( title_opts=opts.TitleOpts(title='', subtitle='排名前10經濟情況', # 標題設定和調整位置 title_textstyle_opts=opts.TextStyleOpts( font_family='SimHei', font_size=25, font_weight='bold', color='red', ), pos_left="90%", pos_top="10", ), xaxis_opts=opts.AxisOpts(name='企業名稱', axislabel_opts=opts.LabelOpts(rotate=20)), # 設定x名稱和Label rotate解決標籤名字過長使用 yaxis_opts=opts.AxisOpts(name='單位:百萬美元'), ) .render("2020年中國500強-排名前10名經濟情況.html") )
本文主要對以下12個方面進行統計分析,最後繪製視覺化圖
中國500強企業-省份分佈。
中國500強企業-營業收入年增率。
中國500強企業-營業收入年減率。
中國500強企業-利潤年增率。
中國500強企業-利潤年減率。
中國500強企業-排名上升最快。
中國500強企業-排名下降最快。
中國500強企業-資產區間分佈。
中國500強企業-市值區間分佈。
中國500強企業-營業收入區間分佈。
中國500強企業-利潤區間分佈。
中國500強企業-排名前10營業收入、利潤、資產、市值、股東權益等情況。
到此這篇關於利用Python對中國500強排行榜資料進行視覺化分析的文章就介紹到這了,更多相關Python資料視覺化內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45