Назначение этого кода:
Соскоблите столы с помощью панд и Прекрасного супа.
Объедините эти таблицы в один фрейм данных.
Код отлично работает для первого шага.Но он не работает во втором.
И проблема в формате даты и времени.Фактически у меня есть два формата даты:
И я не понимаю, как это произошло после анализа даты, я имею в виду, как функция дает мне два разных формата дат, так или иначе ... ..
Вот код:
import pandas as pd
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 " "Safari/537.36", "X-Requested-With": "XMLHttpRequest"}
url = open(r"C:\Users\Sayed\Desktop\script\sample.txt").readlines()
dfs = []
for site in url:
req = Request(site, headers=header)
page = urlopen(req)
soup = BeautifulSoup(page, 'lxml')
table = soup.find('table')
df = pd.read_html(str(table), parse_dates={'DateTime': ['Release Date', 'Time']}, index_col=[0])[0]
df = df.astype('unicode')
df['DateTime'] = pd.to_datetime(df['DateTime'])
dfs.append(df)
df = pd.concat(dfs, axis=1, join='outer').sort_index(ascending=False)
print(df)
Вот ошибка:
Трассировка (последний последний вызов):
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3078, in get_loc
return self._engine.get_loc(key)
File "pandas\_libs\index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas\_libs\hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'DateTime'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/Projects/Tutorial/try.py", line 19, in <module>
df['DateTime'] = pd.to_datetime(df['DateTime'])
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2688, in __getitem__
return self._getitem_column(key)
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2695, in _getitem_column
return self._get_item_cache(key)
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\generic.py", line 2489, in _get_item_cache
values = self._data.get(item)
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\internals.py", line 4115, in get
loc = self.items.get_loc(item)
File "C:\Users\Sayed\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3080, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas\_libs\index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas\_libs\hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'DateTime'