Я пытаюсь создать базу данных штатов и городов.
Каждое имя штата в таблице, которую я читаю, заканчивается буквами [edit], город с другой стороны либо оканчивается на ( text ) [ number ]
Я использовал regex для удаления текста в скобках и квадратных скобках, сохраненных состояний в списке для штатов и городов в другом списке для городов.
Затем я преобразовал эти два списка в словарь, в котором в качестве значения указан штат, а в качестве значения указан город.
Однако есть 517 городов, и когда я это делаю, я теряю 467 городов.Я предполагаю, потому что в настоящее время я не позволяю своему словарю обрабатывать несколько значений.Моя цель - создать фрейм данных размером 517x2 со столбцом состояния и столбцом города (город, соответствующий его состоянию).Если бы я создал фрейм данных из этого словаря, я бы получил только 50х2, а не 512х2.
Мой вопрос таков;i.) мои правильные рассуждения, ii.) как я должен думать о решении этой проблемы / как я должен ее решить, iii.) код, который я написал, самый эффективный способ достижения моей конечной цели
import pandas as pd
import numpy as np
import re
state = []
city = []
with open("university_towns.txt","r") as i:
uni = i.readlines()
for st in uni:
if "[edit]"in st:
state.append(re.sub("[\\[].*?[\\]]\s", "", st))
else:
city.append(re.sub("[\(\[].*?[\)\]]\s", "", st))
city_st = dict(zip(state,city))
#need to take the key-value pairs/items from the dictionary
s = pd.Series(city_st, name ='RegionName')
s.index.name = 'State'
s = s.reset_index()
s
ДОБАВИТЬ: не совсем уверен, как добавить соответствующие данные для этого вопроса