Панды слияния нескольких dfs ошибка формата даты - PullRequest
0 голосов
/ 21 сентября 2018

Назначение этого кода:

  1. Соскоблите столы с помощью панд и Прекрасного супа.

  2. Объедините эти таблицы в один фрейм данных.

Код отлично работает для первого шага.Но он не работает во втором.

И проблема в формате даты и времени.Фактически у меня есть два формата даты:

  • 2018-09-24 01: 30: 00

  • 09 сентября 2018 (август) 21: 30

И я не понимаю, как это произошло после анализа даты, я имею в виду, как функция дает мне два разных формата дат, так или иначе ... ..

Вот код:

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'
...