小编用的数据是来自领英当中的社交数据,由于小编之前也在美国读书,也尝试过在国外找实习、找工作等等,都是通过领英在进行职场上的社交,投递简历、结交职场精英等等,久而久之也逐渐地形成了自己的社交网络,我们将这部分的社交数据下载下来,然后用pandas模块读取
数据的读取和清洗
当然我们先导入需要用到的模块
import pandas as pdimport janitorimport datetimefrom IPython.core.display import display, HTMLfrom pyvis import network as netimport networkx as nx
读取所需要用到的数据集
df_ori = pd.read_csv("Connections.csv", skiprows=3)df_ori.head()
接下来我们进行数据的清洗,具体的思路就是将空值去除掉,并且数据集当中的“Connected on”这一列,内容是日期,但是数据类型却是字符串,因此我们也需要将其变成日期格式。
df = ( df_ori .clean_names() # 去除掉字符串中的空格以及大写变成小写 .drop(columns=['first_name', 'last_name', 'email_address']) # 去除掉这三列 .dropna(subset=['company', 'position']) # 去除掉company和position这两列当中的空值 .to_datetime('connected_on', format='%d %b %Y') )
output
company position connected_on0 xxxxxxxxxx Talent Acquisition 2021-08-151 xxxxxxxxxxxx Associate Partner 2021-08-142 xxxxx 猎头顾问 2021-08-143 xxxxxxxxxxxxxxxxxxxxxxxxx Consultant 2021-07-264 xxxxxxxxxxxxxxxxxxxxxx Account Manager 2021-07-19
数据的分析与可视化
先来看一下小编认识的这些人脉中,分别都是在哪些公司工作的
df['company'].value_counts().head(10).plot(kind="barh").invert_yaxis()
output
从上图可以看到,排在比较前面的大公司都是亚马逊、谷歌、Facebook、微软以及JP Morgan等大公司,看来在小编的校友以及人脉当中也就属小编混的最差了
然后我们再来看一下小编所结交的人脉中,大多都是什么职业的
df['position'].value_counts().head(10).plot(kind="barh").invert_yaxis()
output
从上图可以看出,大多都是从事的是软件工程师相关的工作,排在第二的则是数据科学家以及高级软件工程师,看来程序员认识的果然大多也都是程序员。
<img src="https://www.sucaitoo.com/wp-content/uploads/2023/01/sct7.jpg" alt="
500 Internal Server Error
nginx
” />
然后我们来看一下社交网络的可视化图表的绘制,但是在这之前呢,小编需要先说明几个术语,每一个社交网络都包含:
- 节点:社交网络当中的每个参与者
- 边缘:代表着每一个参与者的关系以及关系的紧密程度
我们先来简单的绘制一个社交网络,主要用到的是networkx模块以及pyvis模块,
g = nx.Graph()g.add_node(0, label = "root") # intialize yourself as central nodeg.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个节点,也分别给他们命名,其中的参数size代表着节点的大小,然后我们将这些个节点相连接
g.add_edge(0, 1)g.add_edge(0, 2)g.add_edge(0, 3)
最后出来的样子如下图
我们先从小编的人脉中,他们所属的公司来进行网络的可视化,首先我们对所属的公司做一个统计排序
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 count0 Amazon xx1 Google xx2 Facebook xx3 Stevens Institute of Technology xx4 Microsoft xx5 JPMorgan Chase & Co. xx6 Amazon Web Services (AWS) xx9 Apple x10 Goldman Sachs x8 Oracle x
然后我们来绘制社交网络的图表
# 实例化网络g = nx.Graph()g.add_node('myself') # 将自己放置在网络的中心# 遍历数据集当中的每一行for _, row in df_company_reduced.iterrows(): # 将公司名和统计结果赋值给新的变量 company = row['company'] count = row['count'] title = f"<b>{company}</b> – {count}" positions = set([x for x in df[company == df['company']]['position']]) positions = ''.join('<li>{}</li>'.format(x) for x in positions) position_list = f"<ul>{positions}</ul>" hover_info = title + position_list g.add_node(company, size=count*2, title=hover_info, color='#3449eb') g.add_edge('root', company, color='grey')# 生成网络图表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以及亚马逊、微软等公司的联系较为密切,认识较多从这些大公司当中出来的员工,与此同时呢,我们来可视化一下小编人脉中各种岗位的分布,我们先做一个统计排序
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 count0 Software Engineer xx1 Data Scientist xx2 Senior Software Engineer xx3 Data Analyst xx4 Senior Data Scientist xx5 Software Development Engineer xx6 Software Development Engineer II xx7 Founder xx8 Data Engineer xx9 Business Analyst xx
然后进行网络图的绘制
g = nx.Graph()g.add_node('myself') # 将自己放置在网络的中心for _, row in df_position_reduced.iterrows(): # 将岗位名和统计结果赋值给新的变量 position = row['position'] count = row['count'] title = f"<b>{position}</b> – {count}" positions = set([x for x in df[position == df['position']]['position']]) positions = ''.join('<li>{}</li>'.format(x) for x in positions) position_list = f"<ul>{positions}</ul>" hover_info = title + position_list g.add_node(position, size=count*2, title=hover_info, color='#3449eb') g.add_edge('root', position, color='grey')# 生成网络图表nt = net.Network(height='700px', width='700px', bgcolor="black", font_color='white')nt.from_nx(g)nt.hrepulsion()nt.show('position_graph.html')
output
用户评论
代价是折磨╳
哎呀,500 Internal Server Error,这什么情况啊?nginx出了什么问题?
有14位网友表示赞同!
一别经年
500 Internal Server Error,这可怎么办啊?我的网页都打不开了。
有17位网友表示赞同!
小清晰的声音
nginx出故障了?这500错误也太常见了吧,怎么解决啊?
有18位网友表示赞同!
一样剩余
500 Internal Server Error,我这网页已经崩溃好几次了,求解决办法!
有12位网友表示赞同!
凉凉凉”凉但是人心
500 Internal Server Error,这nginx的稳定性怎么这么差啊?
有6位网友表示赞同!
∞◆暯小萱◆
500 Internal Server Error,我刚刚打开网页,怎么就变成这样了?nginx出问题了?
有14位网友表示赞同!
颜洛殇
nginx出现500 Internal Server Error,这可怎么办啊?我的网站都打不开了。
有17位网友表示赞同!
将妓就计
500 Internal Server Error,这已经影响我的工作了,怎么办啊?
有6位网友表示赞同!
怀念·最初
nginx出故障了,这500错误让我头疼不已,有没有什么好办法解决?
有19位网友表示赞同!
冷嘲热讽i
500 Internal Server Error,这已经成了家常便饭了,怎么解决啊?
有14位网友表示赞同!
来自火星的我
nginx出现500错误,这可怎么是好?求解决办法!
有7位网友表示赞同!
寂莫
500 Internal Server Error,这已经影响我的心情了,怎么办啊?
有6位网友表示赞同!
瑾澜
nginx出了问题,500错误频发,这可怎么是好?
有11位网友表示赞同!
♂你那刺眼的温柔
500 Internal Server Error,这让我怎么工作啊?有没有什么好办法解决?
有19位网友表示赞同!
花菲
nginx出故障,500错误不断,这可怎么是好?求解决办法!
有19位网友表示赞同!
暖栀
500 Internal Server Error,这已经影响我的生活了,怎么办啊?
有18位网友表示赞同!
等量代换
nginx出现500错误,这让我怎么办啊?有没有什么好办法解决?
有5位网友表示赞同!
一笑抵千言
500 Internal Server Error,这已经成了我的噩梦,怎么办啊?
有11位网友表示赞同!