РЕДАКТИРОВАТЬ: Решение невозможно, нужно подумать о лучшем обходном пути.
Я очищаю эту веб-страницу (http://www.oddsportal.com/american-football/usa/nfl-2017-2018/results/#/page/6/) и пытаюсь вставить дату игры (серым цветом на странице) в каждую соответствующую строку времени игры.
Я изо всех силс тем, как добиться этой логики.
Список очищенных дат для этой страницы выглядит следующим образом ...
file_days=[['17 Sep 2017'],['15 Sep 2017'],['12 Sep 2017'], ['11 Sep 2017'],['10 Sep 2017'], ['08 Sep 2017'],['01 Sep 2017'],['31 Aug 2017'],
['28 Aug 2017'],['27 Aug 2017'],['26 Aug 2017'],['25 Aug 2017'],['24 Aug 2017']]
file_days=file_days[::-1]
Я пытаюсь вставить эти даты в следующий кадр данных, который содержит каждыйвремя запуска соскребенных игр.
import pandas as pd
data = {'game_time': ['23:00','23:30','23:00','00:00','23:00','23:00','23:00','23:30','23:30','00:00','00:00','00:00','01:00','17:00','20:30','00:00','23:00','23:00','23:00','23:00', '23:00','23:30','23:30','23:30','00:00','00:00','00:00','00:00','00:30','01:00','02:00','02:00','00:30','17:00','17:00','17:00','17:00','17:00','17:00','17:00','17:00','20:05','20:25','20:25','00:30','23:10','02:20','00:25','17:00','17:00']}
df = pd.DataFrame.from_dict(data)
Пока у меня есть следующий код, но я просто не могу понять логику попытки вставить новую дату, если время перешло к новому дню.
df.game_time = pd.to_datetime(df.game_time)
df['game'] = df.game_time.dt.strftime('%H:%M')
df['previous_game'] = df.game_time.dt.strftime('%H:%M').shift(1)
df['previous_game'] = df['previous_game'].fillna(str('00:00'))
matchup_day = []
for a,b in zip(df['game'],df['previous_game']):
if a >= b:
matchup_day.append(file_days[0]) #if time of current game is greater than time of previous game than use the current date
else:
matchup_day.append(file_days[1]) #if time of current game is less than time of previous game, then use the next date and delete the most recently used date
file_days.pop(0)
Вывод этого выглядит следующим образом ...
matchup_day
[['24 Aug 2017'],
['24 Aug 2017'],
['25 Aug 2017'],
['26 Aug 2017'],
['26 Aug 2017'],
['26 Aug 2017'],
['26 Aug 2017'],
['26 Aug 2017'],
['26 Aug 2017'],
['27 Aug 2017'],
['27 Aug 2017'],
['27 Aug 2017'],
['27 Aug 2017'],
['27 Aug 2017'],
['27 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['28 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['31 Aug 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['01 Sep 2017'],
['08 Sep 2017'],
['08 Sep 2017'],
['10 Sep 2017'],
['11 Sep 2017'],
['11 Sep 2017'],
['11 Sep 2017']]
Этот вывод явно неверен, так как он срабатывает в строке 15 кадра данных, или 28-го числаАвгуст на сайте. У кого-нибудь есть идеи о том, как улучшить эту логику?
Я также открыт для совершенно разных идей о том, как этого добиться. Заранее спасибо, потому что я был довольно озадаченэто.