-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRecursive_Supplier_Customer_Network.py
155 lines (117 loc) · 7.1 KB
/
Recursive_Supplier_Customer_Network.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 19 11:36:46 2019
@author: ryanmurphy
"""
import numpy as np
import pandas as pd
#try:
# pandas_data.keys()
#except NameError:
# pandas_data = pd.read_csv('Quandl_Data.csv')
# pandas_keys = pandas_data.keys()
# data = np.array(pandas_data,dtype=str)
# NAN = np.where(data[:,9] == 'nan')
# data = np.delete(data,NAN,axis=0)
# NAN = np.where(data[:,4] == 'nan')
# data = np.delete(data,NAN,axis=0)
Index = 1#int(sys.argv[1])
data = np.load('Quandl_Data_NP.npy',allow_pickle=True)
pandas_keys = np.load('Keys.npy',allow_pickle=True)
NAN = np.where(data[:,15] == 'nan')
data = np.delete(data,NAN,axis=0)
data_dic = {}
for i in range(len(pandas_keys)):
data_dic[pandas_keys[i]] = data[:,i]
del data
FTSE100_Companies = np.loadtxt('nikkei_225.csv',delimiter=',',dtype=object)
a
for a in range(0,2):
COMPANY_NAME = FTSE100_Companies[a,0]
COMPANY_TICKER = FTSE100_Companies[a,1]
print(COMPANY_NAME)
if len(np.where(data_dic['customer_isin'].astype(str) == COMPANY_TICKER)[0]) != 0:
Customer_Names = np.unique(data_dic['customer_name'][np.where(data_dic['supplier_isin'].astype(str) == COMPANY_TICKER)].astype(str))
customer_isin = np.unique(data_dic['customer_isin'][np.where(data_dic['supplier_isin'].astype(str) == COMPANY_TICKER)].astype(str))
Supplier_Names = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == COMPANY_TICKER)].astype(str))
supplier_isin = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == COMPANY_TICKER)].astype(str))
Supplier_Dict = {}
Revenue_Dict = {}
dict_i = {}
for i in range(len(supplier_isin)):
print('i: ',i, ' / ', len(supplier_isin))
supplier_isin_i = supplier_isin[i]
Supplier_Names_i = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_i)].astype(str))
supplier_isins_i = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_i)].astype(str))
print('j: ', len(supplier_isins_i))
dict_j = {}
for j in range(len(supplier_isins_i)):
supplier_isin_j = supplier_isins_i[j]
Supplier_Names_j = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_j)].astype(str))
supplier_isins_j = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_j)].astype(str))
if len(supplier_isins_j) == 0:
dict_j[supplier_isin_j] = {}
else:
dict_j[supplier_isin_j] = supplier_isins_j
dict_i[supplier_isin_i] = dict_j
Supplier_Dict[COMPANY_TICKER] = dict_i
np.save('Supplier_Data2/'+COMPANY_NAME+'_Data.npy',Supplier_Dict)
else:
np.save('Supplier_Data2/'+COMPANY_NAME+'_Data.npy',np.array([COMPANY_TICKER]))
for a in range(100):
COMPANY_NAME = FTSE100_Companies[a,0]
COMPANY_TICKER = FTSE100_Companies[a,1]
print(COMPANY_NAME)
if len(np.where(data_dic['supplier_isin'].astype(str) == COMPANY_TICKER)[0]) != 0:
Customer_Names = np.unique(data_dic['customer_name'][np.where(data_dic['supplier_isin'].astype(str) == COMPANY_TICKER)].astype(str))
customer_isin = np.unique(data_dic['customer_isin'][np.where(data_dic['supplier_isin'].astype(str) == COMPANY_TICKER)].astype(str))
Supplier_Names = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == COMPANY_TICKER)].astype(str))
supplier_isin = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == COMPANY_TICKER)].astype(str))
Supplier_Dict = {}
Revenue_Dict = {}
dict_i = {}
dict_i_r = {}
for i in range(len(customer_isin)):
print('i: ',i, ' / ', len(customer_isin))
# supplier_isin_i = supplier_isin[i]
# Supplier_Names_i = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_i)].astype(str))
# supplier_isins_i = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_i)].astype(str))
##
customer_isin_i = customer_isin[i]
Customer_Names_i = np.unique(data_dic['customer_name'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_i)].astype(str))
customer_isins_i = np.unique(data_dic['customer_isin'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_i)].astype(str))
customer_rev_i = np.unique(data_dic['revenue_dependency'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_i)].astype(str))
print('j: ', len(customer_isins_i))
dict_j = {}
dict_j_r = {}
for j in range(len(customer_isins_i)):
# supplier_isin_j = supplier_isins_i[j]
# Supplier_Names_j = np.unique(data_dic['supplier_name'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_j)].astype(str))
# supplier_isins_j = np.unique(data_dic['supplier_isin'][np.where(data_dic['customer_isin'].astype(str) == supplier_isin_j)].astype(str))
#
customer_isin_j = customer_isins_i[j]
Customer_Names_j = np.unique(data_dic['customer_name'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_j)].astype(str))
customer_isins_j = np.unique(data_dic['customer_isin'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_j)].astype(str))
customer_rev_j = np.unique(data_dic['revenue_dependency'][np.where(data_dic['supplier_isin'].astype(str) == customer_isin_j)].astype(str))
if len(customer_isins_j) == 0:
dict_j[customer_isin_j] = {}
if len(customer_rev_j) == 0:
pass
else:
dict_j_r[customer_rev_j] = {}
else:
dict_j[customer_isin_j] = customer_isins_j
dict_j_r[customer_rev_i[j]] = customer_rev_j
dict_i[customer_isin_i] = dict_j
if len(customer_rev_i) == 0:
pass
else:
dict_i_r[customer_rev_i[j]] = dict_j_r
Supplier_Dict[COMPANY_TICKER] = dict_i
Revenue_Dict[COMPANY_TICKER] = dict_i_r
np.save('Customer_Data2/'+COMPANY_NAME+'_Data.npy',Supplier_Dict)
np.save('Customer_Data2/'+COMPANY_NAME+'_Data_Rev.npy',Revenue_Dict)
else:
np.save('Customer_Data2/'+COMPANY_NAME+'_Data.npy',np.array([COMPANY_TICKER]))
np.save('Customer_Data2/'+COMPANY_NAME+'_Data_Rev.npy',np.array([COMPANY_TICKER]))