Не могу отфильтровать даты в пандах - PullRequest
0 голосов
/ 26 сентября 2018

Следуя некоторым урокам, я пытаюсь отфильтровать данные по датам, выбранным в раскрывающемся меню.Я установил столбец даты в качестве индекса и проверил, что все значения имеют тип datetime, но я получаю следующую ошибку:

TypeError("'<' not supported between instances of 'str' and 'datetime.date'",)

Данные:

CustomerName,OrderDate,Item,ItemSKU,Price,Quantity,Channel,Total
Joe,Blog,26/09/2018,Rocks,Rock001,10.99,10,Amazon,100.99
Joe,Blog,26/08/2018,Rocks,Rock001,10.99,10,Amazon,100.99
Joe,Blog,26/07/2018,Rocks,Rock001,10.99,10,Amazon,100.99

Код: Значениягод, месяц возвращаются из выбора пользователя

firstDayMonth = datetime.date(year, month, 1)
daysHolder = monthrange(year, month)
lastDayMonth = datetime.date(year, month, daysHolder[1])

df = pd.read_csv("C:/Users/User/Desktop/testData.csv")
gb = df.groupby(['Channel'])
Amz = gb.get_group('Amazon')
df = Amz .set_index(Amz ['OrderDate'])
df['OrderDate'] = df['OrderDate'].astype('datetime64[ns]')
newData = df.loc[firstDayMonth:lastDayMonth]

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Так что, похоже, мне просто нужно изменить порядок дат в срезе.Использование newData = df.loc[lastDayMonth:firstDayMonth], но newData = df.loc[firstDayMonth:lastDayMonth] не работает.Я думаю, это связано с тем, что в моих данных мои данные убираются с самой поздней даты до самой старой.

0 голосов
/ 26 сентября 2018

В то время как вы устанавливаете индекс для столбца OrderDate, вы делаете это до , вы устанавливаете тип этого столбца в datetime.Возможно, вам придется изменить тип, прежде чем использовать столбец в качестве индекса, в противном случае индексирование с помощью loc завершится неудачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...