Это мой код :
Код: Выделить всё
from faker import Faker
import pandas as pd
fake = Faker()
name = []
address = []
number = []
ssn = []
for i in range(100):
name.append(fake.name())
address.append(fake.address().replace('\n', " "))
ssn.append(fake.ssn())
phone_number = fake.phone_number().split('x')[0].replace('.',"-").replace("(",'').replace(')','').replace(' ','')
# How do to deal with the opposite of ^
if phone_number.startswith('+1'):
phone_number = phone_number[2:]
if phone_number.startswith('1'):
phone_number = phone_number[1:]
if phone_number.startswith('001'):
phone_number = phone_number[3:]
phone_number = phone_number.lstrip('-')
if phone_number.isdigit() and len(phone_number) == 12: #10 or 12 work here for some reason, but I get diff. formats
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}-{phone_number[6:]}"
else:
phone_number = phone_number
number.append(phone_number)
df = pd.DataFrame({'Name':name, 'Address':address,'Phone Number':number, 'SSN':ssn})
df
Сначала я думал, что дело в длине или в том, что оно читается как целое число, а не как строка. , но когда я это сделаю:
Код: Выделить всё
if phone_number.isdigit() and len(phone_number) == 12:
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}-{phone_number[6:]}"
elif len(phone_number) != 12:
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}{phone_number[6:]}"
else:
phone_number = phone_number
Если я сделаю это так:< /p>
Код: Выделить всё
if phone_number.isdigit() and len(phone_number) == 10:
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}-{phone_number[6:]}"
elif len(phone_number) != 10:
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}{phone_number[6:]}"
else:
phone_number = phone_number
Код: Выделить всё
if phone_number.isdigit() and len(phone_number) == 10:
phone_number = f"{phone_number[:3]}-{phone_number[3:6]}-{phone_number[6:]}"
else:
phone_number = phone_number
Я застрял и не знаю, что делать.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python