1
1
import re
2
+ import phonenumbers
3
+ import numpy
2
4
3
5
4
6
def __clean_csv_headers (header ):
@@ -80,14 +82,19 @@ def volgistics_address(index, street):
80
82
81
83
return result
82
84
85
+ def normalize_phone_number (number ):
86
+ if str (number ) == 'nan' :
87
+ return ""
88
+ parsed_number = phonenumbers .parse (number , "US" )
89
+ return phonenumbers .format_number (parsed_number , phonenumbers .PhoneNumberFormat .NATIONAL )
83
90
84
91
SOURCE_NORMALIZATION_MAPPING = {
85
92
"salesforcecontacts" : {
86
93
"source_id" : "contact_id" ,
87
94
"first_name" : "first_name" ,
88
95
"last_name" : "last_name" ,
89
96
"email" : "email" ,
90
- "mobile" : lambda df : df ["mobile" ].combine_first (df ["phone" ]),
97
+ "mobile" : lambda df : df ["mobile" ].combine_first (df ["phone" ]). apply ( normalize_phone_number ) ,
91
98
"street_and_number" : "mailing_street" ,
92
99
"apartment" : "mailing_street" ,
93
100
"city" : "mailing_city" ,
@@ -109,7 +116,7 @@ def volgistics_address(index, street):
109
116
"first_name" : "firstname" ,
110
117
"last_name" : "lastname" ,
111
118
"email" : "email" ,
112
- "mobile" : "phone" ,
119
+ "mobile" : lambda df : df [ "phone" ]. apply ( normalize_phone_number ) ,
113
120
"street_and_number" : "street" ,
114
121
"apartment" : "apartment" ,
115
122
"city" : "city" ,
@@ -124,7 +131,7 @@ def volgistics_address(index, street):
124
131
"first_name" : "first_name" ,
125
132
"last_name" : "last_name" ,
126
133
"email" : "email" ,
127
- "mobile" : lambda df : df ["cell" ].combine_first (df ["home" ]),
134
+ "mobile" : lambda df : df ["cell" ].combine_first (df ["home" ]). apply ( normalize_phone_number ) ,
128
135
"street_and_number" : lambda df : volgistics_address (1 , df ["street_1" ]),
129
136
"apartment" : lambda df : volgistics_address (0 , df ["street_1" ]),
130
137
"city" : "city" ,
0 commit comments