Фильтрация строк по годам - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот код, который используется для фильтрации строк по годам. Я знаю, что вы должны вызывать метод datetime, чтобы этот код работал. Каждый ответ, который я вижу на StackOverFlow, содержит код, аналогичный моему, и он работает для них. Как я могу напечатать значения строк из 2017-2018 без ошибок? Это весь мой код, мне нужно создать функцию? Я очень незнаком с кодом даты и времени, поэтому любое понимание или руководство будет очень полезным, как я уже говорил, я искал ответы в течение последних 2 дней без каких-либо результатов, поэтому я считаю, что я делаю что-то в корне неверное. Пожалуйста, дайте мне знать, если мне нужно уточнить мой вопрос больше.

import pandas as pd
import datetime


df = pd.read_csv('otd.csv', encoding='latin-1')
df['Delivery Date'] = pd.to_datetime(df['Delivery Date'], format= '%m/%d/%Y')
df[(df['Delivery Date'].year >= 2017) & (df['Delivery Date'].year <= 2018)]
print(df)

Ошибка:

Traceback (most recent call last):
  File "C:\Users\khalha\eclipse-workspace\Test3\Project3\P3.py", line 10, in <module>
    df[(df['Delivery Date'].year >= 2017) & (df['Delivery Date'].year <= 2018)]
  File "C:\Users\khalha\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\generic.py", line 4376, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'year'

отд.csv:

enter image description here

1 Ответ

0 голосов
/ 30 августа 2018

используйте .dt accessor: dt

df[(df['Delivery Date'].dt.year >= 2017) & (df['Delivery Date'].dt.year <= 2018)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...