Я новичок в кодировании. Я работаю над проектом в области науки о данных. Надеюсь, вы можете помочь мне со следующим.
Мне нужно почистить таблицу на этой веб-странице , преобразовать ее в кадр данных, объединить все в один столбец, а затем проанализировать и разделить каждый из 2 (или иногда 3) элементы в каждой записи в разные столбцы.
Это то, что я получил до сих пор:
# Loading it to my jupyter notebook
source2 = requests.get('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_H').text
soup2 = BeautifulSoup(source2,'lxml')
print(soup2.title.text)
# Showing the table in html format
print(soup2.title.text)
from IPython.display import display_html
tabl2 = str(soup2.table)
display_html(tabl2,raw=True)
# Reading it as pandas dataframe
mlist = pd.read_html(tabl2)
table_df2=mlist[0]
table_df2.head(10)
# flattening the table
postal_data = pd.Series(table_df2.values.ravel('F'))
postal_data
# Creating the dataframe where Im going to load the flattened data
table_df3 = pd.DataFrame(columns = ['Postal Data'])
# Loading data into new dataframe
table_df3['Postal Data'] = postal_data
table_df3
Теперь мне нужно разобрать его. Проблема заключается в том, что когда очищенные данные преобразуются в кадр данных, каждый из 2 (или иногда 3) элементов в каждой записи объединяется в единый тип слова, без разделителя между ними.
Был ли лучший способ очистить таблицу? Или я должен сосредоточиться сейчас на том, как ее проанализировать?
- 1-й из 2 (или иногда 3) элементов в каждой записи является фиксированная длина 3 символа.
Я могу извлечь эти 3 символа с помощью строки кода ниже, но это не решает мою проблему с другими моими элементами, так как они не удаляются из источника просто создайте копию этих символов и поместите их в другой столбец.
table_df3['Postal Code'] = table_df3['Postal Data'].str[:3]
table_df3
- Предполагается, что вторым элементом является название окрестности. нет фиксированного количества символов
3-й элемент может быть одним из следующих: север, юг, запад, восток, северо-восток, северо-запад, юго-восток, юго-запад, центральный, окраина, внешний theast, Внутренний Северо-Восток, Южный Центр
Те, у кого есть «Не назначено», будут удалены. Таким образом, нет никакого стресса по поводу этих
- Есть 2 записи, которые имеют точку с запятой. Эти 2 места будут удалены. Таким образом, нет никакого стресса о них.
Спасибо за помощь!