Я преобразовал столбец даты в два столбца даты и времени месяца и дня. Затем я пытаюсь отфильтровать по столбцу месяца, а также рассчитать режим этого столбца. Я продолжаю получать сообщения TypeError, которые вызывают другое исключение.
df['Start Time'] = pd.to_datetime(df['Start Time'])
df['months'] = df['Start Time'].dt.month #strftime("%B")
df['day_of_week'] = df['Start Time'].dt.weekday_name
if day != 'all':
df = df.day_of_week.str.contains(day.title())
if month != 'all':
month = month.title()
months = ['January', 'February', 'March', 'April', 'May', 'June']
month = months.index(month) + 1
#filter by month to create the new dataframe
df = df[df['months'] == month]
return df
popular_month = df['months'].mode()[0]
Я ожидаю, что функция возвратит фрейм данных, отфильтрованный по значению "month", а другая строка кода закодирует, чтобы вернуть самый популярный месяц. Я получаю эту ошибку:
Traceback (most recent call last):
File "C:something/yet_another.py", line 308, in <module>
main()
File "C:something/yet_another.py", line 289, in main
df = load_data(city, month, day)
File "C:/something/yet_another.py", line 133, in load_data
df = df[df['months'] == month]
File "C:something\venv\lib\site-packages\pandas\core\series.py", line 1068, in __getitem__
result = self.index.get_value(self, key)
File "C:\soemthing\venv\lib\site-packages\pandas\core\indexes\base.py", line 4730, in get_value
return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None))
File "pandas\_libs\index.pyx", line 80, in pandas._libs.index.IndexEngine.get_value
File "pandas\_libs\index.pyx", line 88, in pandas._libs.index.IndexEngine.get_value
File "pandas\_libs\index.pyx", line 128, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index_class_helper.pxi", line 91, in pandas._libs.index.Int64Engine._check_type
KeyError: 'months'