{"id":25857822,"url":"https://github.com/fareedkhan-dev/github-social-network-analysis","last_synced_at":"2026-02-01T22:01:33.618Z","repository":{"id":134288950,"uuid":"544267746","full_name":"FareedKhan-dev/GitHub-Social-Network-Analysis","owner":"FareedKhan-dev","description":"This project is done using Python library NetworkX, which helps us to analyze the GitHub Social Network Data. ","archived":false,"fork":false,"pushed_at":"2022-10-04T14:49:14.000Z","size":4845,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-21T09:05:27.314Z","etag":null,"topics":["gephi","github","graph","network","networkx","social-network","social-network-analysis"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FareedKhan-dev.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-02T03:48:54.000Z","updated_at":"2025-05-21T14:52:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"e79b3427-dd7c-4d8d-acd4-55cf074f7f24","html_url":"https://github.com/FareedKhan-dev/GitHub-Social-Network-Analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FareedKhan-dev/GitHub-Social-Network-Analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FareedKhan-dev%2FGitHub-Social-Network-Analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FareedKhan-dev%2FGitHub-Social-Network-Analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FareedKhan-dev%2FGitHub-Social-Network-Analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FareedKhan-dev%2FGitHub-Social-Network-Analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FareedKhan-dev","download_url":"https://codeload.github.com/FareedKhan-dev/GitHub-Social-Network-Analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FareedKhan-dev%2FGitHub-Social-Network-Analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28992633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T20:57:35.821Z","status":"ssl_error","status_checked_at":"2026-02-01T20:57:29.580Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gephi","github","graph","network","networkx","social-network","social-network-analysis"],"created_at":"2025-03-01T19:17:57.035Z","updated_at":"2026-02-01T22:01:33.611Z","avatar_url":"https://github.com/FareedKhan-dev.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SNA Group Assignment\r\n\r\nImporting Libraries\r\n\r\n\r\n```python\r\nimport networkx as nx\r\nimport pandas as pd\r\nimport matplotlib.pyplot as plt\r\n```\r\n\r\nImporting dataset\r\n\r\n\r\n```python\r\nusers = pd.read_csv('musae_git_target.csv')\r\n```\r\n\r\nReading Graphs\r\n\r\n\r\n```python\r\nData = open('musae_git_edges.csv', \"r\")\r\n\r\nnext(Data, None)  # skip the first line in the input file\r\n\r\nfollowers = nx.parse_edgelist(Data, delimiter=',', create_using=nx.Graph(), nodetype=int)\r\n```\r\n\r\nFinding Local Cluster (each nodes clustering coefficient)\r\n\r\n\r\n```python\r\nlocal_cluster = nx.clustering(followers)\r\nsorted_local_cluster = {k: v for k, v in sorted(local_cluster.items(), key=lambda item: item[1])}\r\nsorted_local_cluster\r\n```\r\n\r\n\r\n\r\n\r\n    {0: 0,\r\n     34526: 0,\r\n     34035: 0,\r\n     6067: 0,\r\n     ...\r\n     33455: 0,\r\n     13958: 0,\r\n     7764: 0,\r\n     ...}\r\n\r\n\r\n\r\nGlobal Clustering with count zeroes (default)\r\n\r\n\r\n```python\r\nglobal_cluster = nx.average_clustering(followers, count_zeros=True)\r\nglobal_cluster\r\n```\r\n\r\n\r\n\r\n\r\n    0.16753704480107323\r\n\r\n\r\n\r\neccentricity (shortest path with maximum number of nodes)\r\n\r\n\r\n```python\r\n# import pickle\r\n# with open('eccentricity.pkl', 'rb') as f:\r\n#     eccentricity = pickle.load(f)\r\n\r\neccentricity = nx.eccentricity(followers)\r\nsorted_eccentricity = {k: v for k, v in sorted(eccentricity.items(), key=lambda item: item[1])}\r\n\r\nsorted_eccentricity = list(dict(sorted(eccentricity.items(), key=lambda item: item[1], reverse=True)).items())\r\n\r\n# get index (node number) and value (node eccentricity value) top 10 after sorting\r\nsorted_eccentricity_indexes = [x[0] for x in sorted_eccentricity]\r\nsorted_eccentricity_values = [x[1] for x in sorted_eccentricity]\r\n\r\n# Creating dataframe\r\ntop_sorted_eccentricity = pd.DataFrame({'Name':users.iloc[sorted_eccentricity_indexes].name.tolist(), \r\n                                      'Eccentricity': sorted_eccentricity_values, \r\n                                      'ml_target':users.iloc[sorted_eccentricity_indexes].ml_target.tolist()})\r\n\r\ntop_sorted_eccentricity.groupby('Eccentricity').count()['ml_target'].sort_values(ascending=False)\r\n# top_sorted_eccentricity\r\n```\r\n\r\n\r\n\r\n\r\n    Eccentricity\r\n    7     27399\r\n    8      8677\r\n    6      1113\r\n    9       480\r\n    10       27\r\n    11        4\r\n    Name: ml_target, dtype: int64\r\n\r\n\r\n\r\nRadius of Followers Graph\r\n\r\n\r\n```python\r\nradius_of_graph = nx.radius(followers)\r\nradius_of_graph\r\n```\r\n\r\n    6\r\n    \r\n\r\nDiameter of Followers Graph\r\n\r\n\r\n```python\r\ndiameter_of_graph = nx.diameter(followers)\r\ndiameter_of_graph\r\n```\r\n\r\n    11\r\n    \r\n\r\nFor verification diameter=maximum eccentricity\r\n\r\nDensity of follower\r\n\r\n\r\n```python\r\ndensity_of_graph = nx.density(followers)\r\ndensity_of_graph\r\n```\r\n\r\n\r\n    0.0004066878203117068\r\n\r\n\r\nDegree Distribution upto degree value 50 \r\n\r\n\r\n```python\r\ndegree_distrubution = nx.degree_histogram(followers)\r\nfig = plt.figure(figsize=(15, 10))\r\nx = [i for i in range(0, 50)]\r\nplt.bar(x, degree_distrubution[0:50])\r\nplt.show()\r\n```\r\n\r\n\r\n    \r\n![png](GitHub%20Social%20Network%20Code%20File_21_0.png)\r\n    \r\n\r\n\r\nConnected Components\r\n\r\n\r\n```python\r\nprint(nx.is_connected(followers))\r\nprint(nx.number_connected_components(followers))\r\n```\r\n\r\n    True\r\n    1\r\n    \r\n\r\nAverage Path Length\r\n\r\n\r\n```python\r\naverage_short_path_length = nx.average_shortest_path_length(followers)\r\naverage_short_path_length\r\n```\r\n\r\n\r\n    3.2464090056353823\r\n\r\n\r\n_______________\r\n\r\n\r\n```python\r\n# Creating dataframe\r\nsingle_value_calc = pd.DataFrame({'Radius': [radius_of_graph], 'Diameter': [diameter_of_graph], 'Density':[density_of_graph], \r\n                                  'Connected Component': [nx.number_connected_components(followers)],\r\n                                  'Average Path Length': [average_short_path_length]})\r\n\r\n# single_value_calc = pd.DataFrame({'Radius': [6], 'Diameter': [11],  'Density': [0.0004066878203117068], \r\n#                                   'Connected Component': [1], 'Average Path Length': [3.2464090056353823]})\r\n\r\nsingle_value_calc.rename(index={0:'Overall Graph Measures'})\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdiv\u003e\r\n\u003cstyle scoped\u003e\r\n    .dataframe tbody tr th:only-of-type {\r\n        vertical-align: middle;\r\n    }\r\n\r\n    .dataframe tbody tr th {\r\n        vertical-align: top;\r\n    }\r\n\r\n    .dataframe thead th {\r\n        text-align: right;\r\n    }\r\n\u003c/style\u003e\r\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\r\n  \u003cthead\u003e\r\n    \u003ctr style=\"text-align: right;\"\u003e\r\n      \u003cth\u003e\u003c/th\u003e\r\n      \u003cth\u003eRadius\u003c/th\u003e\r\n      \u003cth\u003eDiameter\u003c/th\u003e\r\n      \u003cth\u003eDensity\u003c/th\u003e\r\n      \u003cth\u003eConnected Component\u003c/th\u003e\r\n      \u003cth\u003eAverage Path Length\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/thead\u003e\r\n  \u003ctbody\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003eOverall Graph Measures\u003c/th\u003e\r\n      \u003ctd\u003e6\u003c/td\u003e\r\n      \u003ctd\u003e11\u003c/td\u003e\r\n      \u003ctd\u003e0.000407\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n      \u003ctd\u003e3.246409\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n\r\n```python\r\nlocal_clustering_sort = list((k,v) for k, v in sorted(local_cluster.items(), key=lambda item: item[0], reverse=True))\r\neccentricity_sort = list((k,v)for k, v in sorted(eccentricity.items(), key=lambda item: item[0], reverse=True))\r\n\r\n# get index (node number) and value (node centrality value) top 10 after sorting\r\nsorted_indexes = [x[0] for x in local_clustering_sort]\r\nlocal_values_sort = [x[1] for x in local_clustering_sort]\r\neccentricity_values_sort = [x[1] for x in eccentricity_sort]\r\n\r\n# Creating dataframe\r\neccentricity_and_local_cluster = pd.DataFrame({'Name':users.iloc[sorted_indexes].name.tolist(), \r\n                                      'Eccentricity': eccentricity_values_sort, \r\n                                      'Local Clustering': local_values_sort})\r\n\r\neccentricity_and_local_cluster\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdiv\u003e\r\n\u003cstyle scoped\u003e\r\n    .dataframe tbody tr th:only-of-type {\r\n        vertical-align: middle;\r\n    }\r\n\r\n    .dataframe tbody tr th {\r\n        vertical-align: top;\r\n    }\r\n\r\n    .dataframe thead th {\r\n        text-align: right;\r\n    }\r\n\u003c/style\u003e\r\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\r\n  \u003cthead\u003e\r\n    \u003ctr style=\"text-align: right;\"\u003e\r\n      \u003cth\u003e\u003c/th\u003e\r\n      \u003cth\u003eName\u003c/th\u003e\r\n      \u003cth\u003eEccentricity\u003c/th\u003e\r\n      \u003cth\u003eLocal Clustering\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/thead\u003e\r\n  \u003ctbody\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e0\u003c/th\u003e\r\n      \u003ctd\u003ecaseycavanagh\u003c/td\u003e\r\n      \u003ctd\u003e7\u003c/td\u003e\r\n      \u003ctd\u003e0.333333\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e1\u003c/th\u003e\r\n      \u003ctd\u003eInjabie3\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e2\u003c/th\u003e\r\n      \u003ctd\u003eqpautrat\u003c/td\u003e\r\n      \u003ctd\u003e7\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e3\u003c/th\u003e\r\n      \u003ctd\u003ekris-ipeh\u003c/td\u003e\r\n      \u003ctd\u003e7\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e4\u003c/th\u003e\r\n      \u003ctd\u003eshawnwanderson\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e...\u003c/th\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37695\u003c/th\u003e\r\n      \u003ctd\u003esunilangadi2\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37696\u003c/th\u003e\r\n      \u003ctd\u003eSuhwanCha\u003c/td\u003e\r\n      \u003ctd\u003e7\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37697\u003c/th\u003e\r\n      \u003ctd\u003eJpMCarrilho\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37698\u003c/th\u003e\r\n      \u003ctd\u003eshawflying\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.178571\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37699\u003c/th\u003e\r\n      \u003ctd\u003eEiryyy\u003c/td\u003e\r\n      \u003ctd\u003e8\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\u003cp\u003e37700 rows × 3 columns\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n___________\r\n\r\n### Centrality Measures\r\n\r\nDegree Centrality\r\n\r\n\r\n```python\r\n# Applying degree centrality in NetworX\r\ndeg_centrality = nx.degree_centrality(followers)\r\n\r\n# Applying degree centrality in NetworX\r\ndeg_centrality = nx.degree_centrality(followers)\r\n# Sorting degree centrality and getting top 10\r\nsorted_deg_centrality = list(dict(sorted(deg_centrality.items(), key=lambda item: item[1], reverse=True)).items())\r\n\r\n# get index (node number) and value (node centrality value) top 10 after sorting\r\nsorted_deg_centrality_indexes = [x[0] for x in sorted_deg_centrality]\r\nsorted_deg_centrality_values = [x[1] for x in sorted_deg_centrality]\r\n\r\n# Creating dataframe\r\ntop_degree_centrality = pd.DataFrame({'Name':users.iloc[sorted_deg_centrality_indexes].name.tolist(), \r\n                                      'Degree Centrality': sorted_deg_centrality_values, \r\n                                      'ml_target':users.iloc[sorted_deg_centrality_indexes].ml_target.tolist()})\r\n\r\ntop_degree_centrality\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdiv\u003e\r\n\u003cstyle scoped\u003e\r\n    .dataframe tbody tr th:only-of-type {\r\n        vertical-align: middle;\r\n    }\r\n\r\n    .dataframe tbody tr th {\r\n        vertical-align: top;\r\n    }\r\n\r\n    .dataframe thead th {\r\n        text-align: right;\r\n    }\r\n\u003c/style\u003e\r\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\r\n  \u003cthead\u003e\r\n    \u003ctr style=\"text-align: right;\"\u003e\r\n      \u003cth\u003e\u003c/th\u003e\r\n      \u003cth\u003eName\u003c/th\u003e\r\n      \u003cth\u003eDegree Centrality\u003c/th\u003e\r\n      \u003cth\u003eml_target\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/thead\u003e\r\n  \u003ctbody\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e0\u003c/th\u003e\r\n      \u003ctd\u003edalinhuang99\u003c/td\u003e\r\n      \u003ctd\u003e0.250882\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e1\u003c/th\u003e\r\n      \u003ctd\u003enfultz\u003c/td\u003e\r\n      \u003ctd\u003e0.187936\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e2\u003c/th\u003e\r\n      \u003ctd\u003eaddyosmani\u003c/td\u003e\r\n      \u003ctd\u003e0.088172\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e3\u003c/th\u003e\r\n      \u003ctd\u003eBunlong\u003c/td\u003e\r\n      \u003ctd\u003e0.078464\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e4\u003c/th\u003e\r\n      \u003ctd\u003egabrielpconceicao\u003c/td\u003e\r\n      \u003ctd\u003e0.065466\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e...\u003c/th\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37695\u003c/th\u003e\r\n      \u003ctd\u003echrisryancarter\u003c/td\u003e\r\n      \u003ctd\u003e0.000027\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37696\u003c/th\u003e\r\n      \u003ctd\u003ekcakdemir\u003c/td\u003e\r\n      \u003ctd\u003e0.000027\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37697\u003c/th\u003e\r\n      \u003ctd\u003echadmazilly\u003c/td\u003e\r\n      \u003ctd\u003e0.000027\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37698\u003c/th\u003e\r\n      \u003ctd\u003eorionblastar\u003c/td\u003e\r\n      \u003ctd\u003e0.000027\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37699\u003c/th\u003e\r\n      \u003ctd\u003ejovanidash21\u003c/td\u003e\r\n      \u003ctd\u003e0.000027\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\u003cp\u003e37700 rows × 3 columns\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\nCloseness Centrality\r\n\r\n\r\n```python\r\n# Loading save json of closeness centrality output\r\n# import pickle\r\n# with open('closness_centrality.pkl', 'rb') as f:\r\n#     closeness_centrality = pickle.load(f)\r\n\r\n# Applying closeness centrality in NetworX\r\ncloseness_centrality = nx.closeness_centrality(followers)\r\n\r\n\r\n# Sorting degree centrality and getting top 10\r\nsorted_closness_centrality = list(dict(sorted(closeness_centrality.items(), key=lambda item: item[1], reverse=True)).items())\r\n\r\n# get index (node number) and value (node centrality value) top 10 after sorting\r\nsorted_closeness_centrality_indexes = [x[0] for x in sorted_closness_centrality]\r\nsorted_closeness_centrality_values = [x[1] for x in sorted_closness_centrality]\r\n\r\n# Creating dataframe\r\ntop_closeness_centrality = pd.DataFrame({'Name':users.iloc[sorted_closeness_centrality_indexes].name.tolist(), \r\n                                      'Closeness Centrality': sorted_closeness_centrality_values, \r\n                                      'ml_target':users.iloc[sorted_closeness_centrality_indexes].ml_target.tolist()})\r\n\r\ntop_closeness_centrality\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdiv\u003e\r\n\u003cstyle scoped\u003e\r\n    .dataframe tbody tr th:only-of-type {\r\n        vertical-align: middle;\r\n    }\r\n\r\n    .dataframe tbody tr th {\r\n        vertical-align: top;\r\n    }\r\n\r\n    .dataframe thead th {\r\n        text-align: right;\r\n    }\r\n\u003c/style\u003e\r\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\r\n  \u003cthead\u003e\r\n    \u003ctr style=\"text-align: right;\"\u003e\r\n      \u003cth\u003e\u003c/th\u003e\r\n      \u003cth\u003eName\u003c/th\u003e\r\n      \u003cth\u003eCloseness Centrality\u003c/th\u003e\r\n      \u003cth\u003eml_target\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/thead\u003e\r\n  \u003ctbody\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e0\u003c/th\u003e\r\n      \u003ctd\u003enfultz\u003c/td\u003e\r\n      \u003ctd\u003e0.523081\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e1\u003c/th\u003e\r\n      \u003ctd\u003edalinhuang99\u003c/td\u003e\r\n      \u003ctd\u003e0.517787\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e2\u003c/th\u003e\r\n      \u003ctd\u003eBunlong\u003c/td\u003e\r\n      \u003ctd\u003e0.466324\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e3\u003c/th\u003e\r\n      \u003ctd\u003eaddyosmani\u003c/td\u003e\r\n      \u003ctd\u003e0.450342\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e4\u003c/th\u003e\r\n      \u003ctd\u003egabrielpconceicao\u003c/td\u003e\r\n      \u003ctd\u003e0.447461\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e...\u003c/th\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37695\u003c/th\u003e\r\n      \u003ctd\u003ehaochenli\u003c/td\u003e\r\n      \u003ctd\u003e0.155371\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37696\u003c/th\u003e\r\n      \u003ctd\u003eabhishekpopli\u003c/td\u003e\r\n      \u003ctd\u003e0.153934\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37697\u003c/th\u003e\r\n      \u003ctd\u003escandeiro\u003c/td\u003e\r\n      \u003ctd\u003e0.147439\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37698\u003c/th\u003e\r\n      \u003ctd\u003ejazzchipc\u003c/td\u003e\r\n      \u003ctd\u003e0.145151\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37699\u003c/th\u003e\r\n      \u003ctd\u003eSOUMAJYOTI\u003c/td\u003e\r\n      \u003ctd\u003e0.141389\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\u003cp\u003e37700 rows × 3 columns\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\nBetweenness Centrality\r\n\r\n\r\n```python\r\n# Loading save json of closeness centrality output\r\n# import pickle\r\n# with open('betweeness_centrality.pkl', 'rb') as f:\r\n#     betweeness_centrality = pickle.load(f)\r\n\r\n# Applying betweeness centrality in NetworX\r\nbetweeness_centrality = nx.betweenness_centrality(followers)\r\n\r\n# Sorting degree centrality and getting top 10\r\nsorted_between_centrality = list(dict(sorted(betweeness_centrality.items(), key=lambda item: item[1], reverse=True)).items())\r\n\r\n# get index (node number) and value (node centrality value) top 10 after sorting\r\nsorted_between_centrality_indexes = [x[0] for x in sorted_between_centrality]\r\nsorted_between_centrality_values = [x[1] for x in sorted_between_centrality]\r\n\r\n# Creating dataframe\r\ntop_between_centrality = pd.DataFrame({'Name':users.iloc[sorted_between_centrality_indexes].name.tolist(), \r\n                                      'Betweeness Centrality': sorted_between_centrality_values, \r\n                                      'ml_target':users.iloc[sorted_between_centrality_indexes].ml_target.tolist()})\r\n\r\ntop_between_centrality\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdiv\u003e\r\n\u003cstyle scoped\u003e\r\n    .dataframe tbody tr th:only-of-type {\r\n        vertical-align: middle;\r\n    }\r\n\r\n    .dataframe tbody tr th {\r\n        vertical-align: top;\r\n    }\r\n\r\n    .dataframe thead th {\r\n        text-align: right;\r\n    }\r\n\u003c/style\u003e\r\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\r\n  \u003cthead\u003e\r\n    \u003ctr style=\"text-align: right;\"\u003e\r\n      \u003cth\u003e\u003c/th\u003e\r\n      \u003cth\u003eName\u003c/th\u003e\r\n      \u003cth\u003eBetweeness Centrality\u003c/th\u003e\r\n      \u003cth\u003eml_target\u003c/th\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/thead\u003e\r\n  \u003ctbody\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e0\u003c/th\u003e\r\n      \u003ctd\u003edalinhuang99\u003c/td\u003e\r\n      \u003ctd\u003e0.269599\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e1\u003c/th\u003e\r\n      \u003ctd\u003enfultz\u003c/td\u003e\r\n      \u003ctd\u003e0.240541\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e2\u003c/th\u003e\r\n      \u003ctd\u003eBunlong\u003c/td\u003e\r\n      \u003ctd\u003e0.055323\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e3\u003c/th\u003e\r\n      \u003ctd\u003eaddyosmani\u003c/td\u003e\r\n      \u003ctd\u003e0.043408\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e4\u003c/th\u003e\r\n      \u003ctd\u003egabrielpconceicao\u003c/td\u003e\r\n      \u003ctd\u003e0.035337\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e...\u003c/th\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n      \u003ctd\u003e...\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37695\u003c/th\u003e\r\n      \u003ctd\u003echrisryancarter\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37696\u003c/th\u003e\r\n      \u003ctd\u003ekcakdemir\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37697\u003c/th\u003e\r\n      \u003ctd\u003echadmazilly\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37698\u003c/th\u003e\r\n      \u003ctd\u003eorionblastar\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n      \u003ctd\u003e1\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n    \u003ctr\u003e\r\n      \u003cth\u003e37699\u003c/th\u003e\r\n      \u003ctd\u003ejovanidash21\u003c/td\u003e\r\n      \u003ctd\u003e0.000000\u003c/td\u003e\r\n      \u003ctd\u003e0\u003c/td\u003e\r\n    \u003c/tr\u003e\r\n  \u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\u003cp\u003e37700 rows × 3 columns\u003c/p\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n\r\n```python\r\nplt.subplot(1,3,1)\r\nplt.xlabel('Centrality Values')\r\nplt.title('Degree Centrality')\r\n\r\ntop_degree_centrality['Degree Centrality'].plot.hist(figsize=(30, 5), ylim=(0,200))\r\nplt.subplot(1,3,2)\r\nplt.xlabel('Centrality Values')\r\nplt.title('Closeness Centrality')\r\n\r\ntop_closeness_centrality['Closeness Centrality'].plot.hist(figsize=(30, 5))\r\n\r\nplt.subplot(1,3,3)\r\nplt.xlabel('Centrality Values')\r\nplt.title('Betweeness Centrality')\r\n\r\ntop_between_centrality['Betweeness Centrality'].plot.hist(figsize=(30, 5))\r\n\r\nplt.show()\r\n\r\n```\r\n\r\n\r\n    \r\n![png](GitHub%20Social%20Network%20Code%20File_37_0.png)\r\n    \r\n\r\n\r\nVisualizing Highest Degree Centrality Node in Graph\r\n\r\n\r\n```python\r\nfollowers_network = pd.read_csv('musae_git_edges.csv')\r\nusers = pd.read_csv('musae_git_target.csv')\r\n\r\nnodes_with_deg_gret_100 = dict((k, v) for k, v in dict(followers.degree).items() if v \u003e 50)\r\n\r\n# Creating a function to check if id_1 or id_2 is ML or Web developer\r\ndef check_if_exist(id):\r\n    if id in list(nodes_with_deg_gret_100.keys()):\r\n        return 1\r\n    else:\r\n        return 0\r\n\r\nfollowers_network['first_id'] = followers_network['id_1'].apply(check_if_exist)\r\n# followers_network['second_id'] = followers_network['id_2'].apply(check_if_exist)\r\nfollowers_test = followers_network[(followers_network['first_id'] == 1) \u0026 (followers_network['id_2'] == 31890)]\r\nG = nx.from_pandas_edgelist(followers_test, 'id_1', 'id_2')\r\n\r\n# Visualizing the highest degree centrality node regin in Graph\r\nfig = plt.figure(figsize=(10, 10))\r\nplt.margins(0,0)\r\n\r\nnodes_sizes = []\r\nnodes_color = []\r\n\r\nfor each in list(G.nodes):\r\n    if each == sorted_deg_centrality[0][0]:\r\n        nodes_sizes.append(4000)\r\n        nodes_color.append('#f02b79')\r\n\r\n    elif each == sorted_deg_centrality[1][0]:\r\n        nodes_sizes.append(1000)\r\n        nodes_color.append('#f02b79')\r\n    else:\r\n        nodes_sizes.append(20)\r\n        nodes_color.append('#02A4DE')\r\n\r\nprint('Highest Degree Centrality Node Lies in Red Shaded Region')\r\nnx.draw(G, node_size=nodes_sizes, node_color=nodes_color, edge_color='#dce8e0')\r\n```\r\n\r\n    Highest Degree Centrality Node Lies in Red Shaded Region\r\n    \r\n\r\n\r\n    \r\n![png](GitHub%20Social%20Network%20Code%20File_39_1.png)\r\n    \r\n\r\n\r\nVisualizing Two Highest Closeness Centrality Node in Graph\r\n\r\n\r\n```python\r\nfollowers_network = pd.read_csv('musae_git_edges.csv')\r\nusers = pd.read_csv('musae_git_target.csv')\r\n\r\nnodes_with_deg_gret_100 = dict((k, v) for k, v in dict(followers.degree).items() if v \u003e 50)\r\n\r\n# Creating a function to check if id_1 or id_2 is ML or Web developer\r\ndef check_if_exist(id):\r\n    if id in list(nodes_with_deg_gret_100.keys()):\r\n        return 1\r\n    else:\r\n        return 0\r\n\r\nfollowers_network['first_id'] = followers_network['id_1'].apply(check_if_exist)\r\n# followers_network['second_id'] = followers_network['id_2'].apply(check_if_exist)\r\nfollowers_test = followers_network[(followers_network['first_id'] == 1) \u0026 (followers_network['id_2'] == 31890)]\r\nG = nx.from_pandas_edgelist(followers_test, 'id_1', 'id_2')\r\n\r\n# Visualizing the highest degree centrality node regin in Graph\r\nfig = plt.figure(figsize=(10, 10))\r\nplt.margins(0,0)\r\n\r\nnodes_sizes = []\r\nnodes_color = []\r\n\r\nfor each in list(G.nodes):\r\n    if each == sorted_closness_centrality[0][0]:\r\n        nodes_sizes.append(4000)\r\n        nodes_color.append('#f02b79')\r\n\r\n    elif each == sorted_closness_centrality[1][0]:\r\n        nodes_sizes.append(1000)\r\n        nodes_color.append('#f02b79')\r\n    else:\r\n        nodes_sizes.append(20)\r\n        nodes_color.append('#02A4DE')\r\n\r\n\r\nprint('Highest Closeness Centrality Node Lies in Red Shaded Region')\r\nnx.draw(G, node_size=nodes_sizes, node_color=nodes_color, edge_color='#dce8e0')\r\n```\r\n\r\n    Highest Closeness Centrality Node Lies in Red Shaded Region\r\n    \r\n\r\n\r\n    \r\n![png](GitHub%20Social%20Network%20Code%20File_41_1.png)\r\n    \r\n\r\n\r\nVisualizing Two Betwenness Closeness Centrality Node in Graph\r\n\r\n\r\n```python\r\nfollowers_network = pd.read_csv('musae_git_edges.csv')\r\nusers = pd.read_csv('musae_git_target.csv')\r\n\r\nnodes_with_deg_gret_100 = dict((k, v) for k, v in dict(followers.degree).items() if v \u003e 50)\r\n\r\n# Creating a function to check if id_1 or id_2 is ML or Web developer\r\ndef check_if_exist(id):\r\n    if id in list(nodes_with_deg_gret_100.keys()):\r\n        return 1\r\n    else:\r\n        return 0\r\n\r\nfollowers_network['first_id'] = followers_network['id_1'].apply(check_if_exist)\r\n# followers_network['second_id'] = followers_network['id_2'].apply(check_if_exist)\r\nfollowers_test = followers_network[(followers_network['first_id'] == 1) \u0026 (followers_network['id_2'] == 31890)]\r\nG = nx.from_pandas_edgelist(followers_test, 'id_1', 'id_2')\r\n\r\n# Visualizing the highest degree centrality node regin in Graph\r\nfig = plt.figure(figsize=(10, 10))\r\nplt.margins(0,0)\r\n\r\nnodes_sizes = []\r\nnodes_color = []\r\n\r\nfor each in list(G.nodes):\r\n    if each == sorted_between_centrality[0][0]:\r\n        nodes_sizes.append(4000)\r\n        nodes_color.append('#f02b79')\r\n\r\n    elif each == sorted_between_centrality[1][0]:\r\n        nodes_sizes.append(1000)\r\n        nodes_color.append('#f02b79')\r\n    else:\r\n        nodes_sizes.append(20)\r\n        nodes_color.append('#02A4DE')\r\n\r\n\r\nprint('Highest Betweenness Centrality Node Lies in Red Shaded Region')\r\nnx.draw(G, node_size=nodes_sizes, node_color=nodes_color, edge_color='#dce8e0')\r\n```\r\n\r\n    Highest Betweenness Centrality Node Lies in Red Shaded Region\r\n    \r\n\r\n\r\n    \r\n![png](GitHub%20Social%20Network%20Code%20File_43_1.png)\r\n    \r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffareedkhan-dev%2Fgithub-social-network-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffareedkhan-dev%2Fgithub-social-network-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffareedkhan-dev%2Fgithub-social-network-analysis/lists"}