溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

發(fā)布時間:2022-05-18 11:23:02 來源:億速云 閱讀:177 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、前言

今天來跟大家分析一下2020年中國500強企業(yè)排行榜數(shù)據(jù),從不同角度去對數(shù)據(jù)進行統(tǒng)計分析,可視化展示。

主要分析內(nèi)容

中國500強企業(yè)-省份分布。

中國500強企業(yè)-營業(yè)收入年增率。

中國500強企業(yè)-營業(yè)收入年減率。

中國500強企業(yè)-利潤年增率。

中國500強企業(yè)-利潤年減率。

中國500強企業(yè)-排名上升最快。

中國500強企業(yè)-排名下降最快。

中國500強企業(yè)-資產(chǎn)區(qū)間分布。

中國500強企業(yè)-市值區(qū)間分布。

中國500強企業(yè)-營業(yè)收入?yún)^(qū)間分布。

中國500強企業(yè)-利潤區(qū)間分布。

中國500強企業(yè)-排名前10營業(yè)收入、利潤、資產(chǎn)、市值、股東權益等情況。

下面開始從數(shù)據(jù)采集到數(shù)據(jù)統(tǒng)計分析,最后進行可視化?。?!

二、數(shù)據(jù)采集

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

1.開始爬取

獲取企業(yè)列表
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
獲取企業(yè)對應url
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
獲取每一個企業(yè)相關數(shù)據(jù)
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')

2.保存到Excel

outwb = openpyxl.Workbook()
outws = outwb.create_sheet(index=0)
outws.cell(row=1, column=1, value="企業(yè)名稱")
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="營業(yè)收入")
outws.cell(row=1, column=6, value="營業(yè)收入年增減")
outws.cell(row=1, column=7, value="利潤")
outws.cell(row=1, column=8, value="利潤年增減")
outws.cell(row=1, column=9, value="資產(chǎn)")
outws.cell(row=1, column=10, value="市值")
outws.cell(row=1, column=11, value="股東權益")
outwb.save("中國500強排行榜數(shù)據(jù).xlsx")  # 保存

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

數(shù)據(jù)就已經(jīng)保存到Excel中,下面開始進行統(tǒng)計分析,可視化!

三、可視化分析

1.省份分布

導入相關可視化庫
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
統(tǒng)計數(shù)據(jù)

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:總部地址,然后取出前兩位(省份),統(tǒng)計每一個省份的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是另外一個列表,里面的內(nèi)容是address_03里面的無重復 項
for item in address_03_set:
  data.append((item,address_03.count(item)))
地圖可視化
def map_china() -> Map:
  c = (
    Map()
    .add(series_name="企業(yè)數(shù)量", data_pair=data, maptype="china",zoom = 1,center=[105,38])
    .set_global_opts(
      title_opts=opts.TitleOpts(title="中國500強企業(yè)省份分布"),
      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

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

2.營業(yè)收入年增率

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:營業(yè)收入年增減,統(tǒng)計增加率最大的前50名和減少率(負數(shù))最大的前50名

income_rate = pd_data['營業(yè)收入年增減']
compare_name = pd_data['企業(yè)名稱']
income_rate = income_rate.tolist()
compare_name = compare_name.tolist()
m = income_rate
# 求一個list中最大的50個數(shù),并排序
max_number = heapq.nlargest(50, m)
# 最大的2個數(shù)對應的,如果用nsmallest則是求最小的數(shù)及其索引
max_index = map(m.index, heapq.nlargest(50, m))
# max_index 直接輸出來不是數(shù),使用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)

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

3.營業(yè)收入年減率

income_rate = income_rate.tolist()
compare_name = compare_name.tolist()
m = income_rate
# 求一個list中最小的50個數(shù),并排序
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)]

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

4.利潤年增率

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:利潤年增減,統(tǒng)計增加率最大的前50名和減少率(負數(shù))最大的前50名

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

5.利潤年減率

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

6.排名上升最快20家企業(yè)

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:2020年排名和2019年排名,進行對比,統(tǒng)計排名上升最大的前20家企業(yè),和排名下降最大的前20家企業(yè)。

###折線圖
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")
    )

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

7.排名下降最快20家企業(yè)

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

8.資產(chǎn)區(qū)間分布

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:資產(chǎn),為9000 間隔進行區(qū)間劃分,并統(tǒng)計每一個區(qū)間的個數(shù)。

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))))

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

9.市值區(qū)間分布

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:市值,為7000 間隔進行區(qū)間劃分,并統(tǒng)計每一個區(qū)間的個數(shù)。

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))))

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

10.營業(yè)收入?yún)^(qū)間分布

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:營業(yè)收入,為50000 間隔進行區(qū)間劃分,并統(tǒng)計每一個區(qū)間的個數(shù)。

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))))

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

11.利潤區(qū)間分布

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

從excel中中取出:利潤5000 間隔進行區(qū)間劃分,并統(tǒng)計每一個區(qū)間的個數(shù)。

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))))

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

12.中國500強企業(yè)-排名前10營業(yè)收入、利潤、資產(chǎn)、市值、股東權益

從excel中中取出排名前10: **營業(yè)收入、**利潤、資產(chǎn)、市值、股東權益、

name = pd_data['企業(yè)名稱'][0:11].tolist()
data_1 = pd_data['營業(yè)收入'][0:11].tolist()
data_2 = pd_data['利潤'][0:11].tolist()
data_3 = pd_data['資產(chǎn)'][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="營業(yè)收入", yaxis_data=cleardata(data_1))  # y軸
        .add_yaxis(series_name="利潤", yaxis_data=cleardata(data_2))  # y軸
        .add_yaxis(series_name="資產(chǎn)", 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經(jīng)濟情況',  # 標題配置和調整位置
                                  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='企業(yè)名稱', axislabel_opts=opts.LabelOpts(rotate=20)),
        # 設置x名稱和Label rotate解決標簽名字過長使用
        yaxis_opts=opts.AxisOpts(name='單位:百萬美元'),
 
    )
        .render("2020年中國500強-排名前10名經(jīng)濟情況.html")
)

怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析

以上就是“怎么利用Python對500強排行榜數(shù)據(jù)進行可視化分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI