<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python實現(xiàn)社交網(wǎng)絡(luò)可視化,看看你的人脈影響力如何

          共 5384字,需瀏覽 11分鐘

           ·

          2021-11-19 04:16


          我們平常都會使用很多的社交媒體,有微信、微博、抖音等等,例如在微博上面,我們會關(guān)注某些KOL,同時自己身邊的親朋好友等等也會來關(guān)注我們自己,成為我們自己的粉絲。而慢慢地隨著粉絲的量不斷累積,這層關(guān)系網(wǎng)絡(luò)也會不斷地壯大,很多信息也是通過這樣的關(guān)系網(wǎng)絡(luò)不斷地向外傳播,分析這些社交網(wǎng)絡(luò)并且了解透徹它對于我們做出各項商業(yè)決策來說也是至關(guān)重要的,今天小編就用一些Python的第三方庫來進行社交網(wǎng)絡(luò)的可視化

          數(shù)據(jù)來源

          小編用的數(shù)據(jù)是來自領(lǐng)英當(dāng)中的社交數(shù)據(jù),由于小編之前也在美國讀書,也嘗試過在國外找實習(xí)、找工作等等,都是通過領(lǐng)英在進行職場上的社交,投遞簡歷、結(jié)交職場精英等等,久而久之也逐漸地形成了自己的社交網(wǎng)絡(luò),我們將這部分的社交數(shù)據(jù)下載下來,然后用pandas模塊讀取

          數(shù)據(jù)的讀取和清洗

          當(dāng)然我們先導(dǎo)入需要用到的模塊

          import?pandas?as?pd
          import?janitor
          import?datetime

          from?IPython.core.display?import?display,?HTML
          from?pyvis?import?network?as?net
          import?networkx?as?nx

          讀取所需要用到的數(shù)據(jù)集

          df_ori?=?pd.read_csv("Connections.csv",?skiprows=3)
          df_ori.head()
          接下來我們進行數(shù)據(jù)的清洗,具體的思路就是將空值去除掉,并且數(shù)據(jù)集當(dāng)中的“Connected on”這一列,內(nèi)容是日期,但是數(shù)據(jù)類型卻是字符串,因此我們也需要將其變成日期格式。
          df?=?(
          ????df_ori
          ????.clean_names()?#?去除掉字符串中的空格以及大寫變成小寫
          ????.drop(columns=['first_name',?'last_name',?'email_address'])?#?去除掉這三列
          ????.dropna(subset=['company',?'position'])?#?去除掉company和position這兩列當(dāng)中的空值
          ????.to_datetime('connected_on',?format='%d?%b?%Y')
          ??)

          output

          ????????????????????company????????????position?connected_on
          0????????????????xxxxxxxxxx??Talent?Acquisition???2021-08-15
          1???????????????xxxxxxxxxxxx???Associate?Partner???2021-08-14
          2??????????????????????xxxxx????????????????獵頭顧問???2021-08-14
          3??xxxxxxxxxxxxxxxxxxxxxxxxx??????????Consultant???2021-07-26
          4????xxxxxxxxxxxxxxxxxxxxxx?????Account?Manager???2021-07-19

          數(shù)據(jù)的分析與可視化

          先來看一下小編認識的這些人脈中,分別都是在哪些公司工作的

          df['company'].value_counts().head(10).plot(kind="barh").invert_yaxis()

          output

          從上圖可以看到,排在比較前面的大公司都是亞馬遜、谷歌、Facebook、微軟以及JP Morgan等大公司,看來在小編的校友以及人脈當(dāng)中也就屬小編混的最差了
          然后我們再來看一下小編所結(jié)交的人脈中,大多都是什么職業(yè)的
          df['position'].value_counts().head(10).plot(kind="barh").invert_yaxis()

          output

          從上圖可以看出,大多都是從事的是軟件工程師相關(guān)的工作,排在第二的則是數(shù)據(jù)科學(xué)家以及高級軟件工程師,看來程序員認識的果然大多也都是程序員。
          然后我們來看一下社交網(wǎng)絡(luò)的可視化圖表的繪制,但是在這之前呢,小編需要先說明幾個術(shù)語,每一個社交網(wǎng)絡(luò)都包含:
          • 節(jié)點:社交網(wǎng)絡(luò)當(dāng)中的每個參與者
          • 邊緣:代表著每一個參與者的關(guān)系以及關(guān)系的緊密程度
          我們先來簡單的繪制一個社交網(wǎng)絡(luò),主要用到的是networkx模塊以及pyvis模塊,
          g?=?nx.Graph()
          g.add_node(0,?label?=?"root")?#?intialize?yourself?as?central?node
          g.add_node(1,?label?=?"Company?1",?size=10,?title="info1")
          g.add_node(2,?label?=?"Company?2",?size=40,?title="info2")
          g.add_node(3,?label?=?"Company?3",?size=60,?title="info3")
          我們先是建立了4個節(jié)點,也分別給他們命名,其中的參數(shù)size代表著節(jié)點的大小,然后我們將這些個節(jié)點相連接
          g.add_edge(0,?1)
          g.add_edge(0,?2)
          g.add_edge(0,?3)
          最后出來的樣子如下圖

          我們先從小編的人脈中,他們所屬的公司來進行網(wǎng)絡(luò)的可視化,首先我們對所屬的公司做一個統(tǒng)計排序
          df_company?=?df['company'].value_counts().reset_index()
          df_company.columns?=?['company',?'count']
          df_company?=?df_company.sort_values(by="count",?ascending=False)
          df_company.head(10)

          output

          ????????????????????????????company??count
          0????????????????????????????Amazon?????xx
          1????????????????????????????Google?????xx
          2??????????????????????????Facebook?????xx
          3???Stevens?Institute?of?Technology?????xx
          4?????????????????????????Microsoft?????xx
          5??????????????JPMorgan?Chase?&?Co.?????xx
          6?????????Amazon?Web?Services?(AWS)?????xx
          9?????????????????????????????Apple??????x
          10????????????????????Goldman?Sachs??????x
          8????????????????????????????Oracle??????x

          然后我們來繪制社交網(wǎng)絡(luò)的圖表

          #?實例化網(wǎng)絡(luò)
          g?=?nx.Graph()
          g.add_node('myself')?#?將自己放置在網(wǎng)絡(luò)的中心

          #?遍歷數(shù)據(jù)集當(dāng)中的每一行
          for?_,?row?in?df_company_reduced.iterrows():

          ????#?將公司名和統(tǒng)計結(jié)果賦值給新的變量
          ????company?=?row['company']
          ????count?=?row['count']

          ????title?=?f"{company}?–?{count}"
          ????positions?=?set([x?for?x?in?df[company?==?df['company']]['position']])
          ????positions?=?''.join('
        2. {}
        3. '
          .format(x)?for?x?in?positions)

          ????position_list?=?f"
            {positions}
          "

          ????hover_info?=?title?+?position_list

          ????g.add_node(company,?size=count*2,?title=hover_info,?color='#3449eb')
          ????g.add_edge('root',?company,?color='grey')

          #?生成網(wǎng)絡(luò)圖表
          nt?=?net.Network(height='700px',?width='700px',?bgcolor="black",?font_color='white')
          nt.from_nx(g)
          nt.hrepulsion()

          nt.show('company_graph.html')
          display(HTML('company_graph.html'))

          output

          我們從上面也能看到小編與谷歌、Facebook以及亞馬遜、微軟等公司的聯(lián)系較為密切,認識較多從這些大公司當(dāng)中出來的員工,與此同時呢,我們來可視化一下小編人脈中各種崗位的分布,我們先做一個統(tǒng)計排序
          df_position?=?df['position'].value_counts().reset_index()
          df_position.columns?=?['position',?'count']
          df_position?=?df_position.sort_values(by="count",?ascending=False)
          df_position.head(10)

          output

          ???????????????????????????position??count
          0?????????????????Software?Engineer?????xx
          1????????????????????Data?Scientist?????xx
          2??????????Senior?Software?Engineer?????xx
          3??????????????????????Data?Analyst?????xx
          4?????????????Senior?Data?Scientist?????xx
          5?????Software?Development?Engineer?????xx
          6??Software?Development?Engineer?II?????xx
          7???????????????????????????Founder?????xx
          8?????????????????????Data?Engineer?????xx
          9??????????????????Business?Analyst?????xx

          然后進行網(wǎng)絡(luò)圖的繪制

          g?=?nx.Graph()
          g.add_node('myself')?#?將自己放置在網(wǎng)絡(luò)的中心

          for?_,?row?in?df_position_reduced.iterrows():

          ????#?將崗位名和統(tǒng)計結(jié)果賦值給新的變量
          ????position?=?row['position']
          ????count?=?row['count']

          ????title?=?f"{position}?–?{count}"
          ????positions?=?set([x?for?x?in?df[position?==?df['position']]['position']])
          ????positions?=?''.join('
        4. {}
        5. '
          .format(x)?for?x?in?positions)

          ????position_list?=?f"
            {positions}
          "

          ????hover_info?=?title?+?position_list

          ????g.add_node(position,?size=count*2,?title=hover_info,?color='#3449eb')
          ????g.add_edge('root',?position,?color='grey')

          #?生成網(wǎng)絡(luò)圖表
          nt?=?net.Network(height='700px',?width='700px',?bgcolor="black",?font_color='white')
          nt.from_nx(g)
          nt.hrepulsion()

          nt.show('position_graph.html')

          output

          可以看出小編認識的大多數(shù)人都是“軟件工程師”這個職業(yè),其次便是數(shù)據(jù)科學(xué)家以及高級軟件工程師等職位。

          各位伙伴們好,詹帥本帥搭建了一個個人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗一下哦!(歡迎提建議)

          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯誤、異常和模塊(長文系列第④篇)


          瀏覽 75
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人AV电影天堂 | 视频乱伦毛片 | 尤物193.c om | 国产欧美日韩久久 | 大鸡巴在线看 |