-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest20250206_02.py
38 lines (30 loc) · 1016 Bytes
/
test20250206_02.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import numpy as np
import pandas as pd
from tqdm import tqdm
import os
import csv
from collections import defaultdict
def default_list():
return [0, 0]
df = pd.read_csv("polished_data/non_people_light_edges_list.csv")
node_degrees: defaultdict[str, int] = defaultdict(int)
degrees: defaultdict[str, list] = defaultdict(default_list)
names: set[str] = set()
for edge in tqdm(df.itertuples(), total=df.shape[0]):
names.add(edge.Source)
names.add(edge.Target)
degrees[edge.Source][1] += 1
degrees[edge.Target][0] += 1
names_list: list[str] = list(names)
pd.DataFrame(
{
"Name": names_list,
"Undirected degree": [sum(degrees[name]) for name in names_list],
"In-degree": [degrees[name][0] for name in names_list],
"Out-degree": [degrees[name][1] for name in names_list],
}
).sort_values(by="Undirected degree", ascending=False).to_csv(
os.path.join("polished_data", "non_people_light_degrees.csv"),
index=False,
quoting=csv.QUOTE_MINIMAL,
)