비교 datetime 개체-파이

0

질문

나는 데이터는 파일은 다음과 같습니다:

Date          item purchased
01-12-2018      Car
02-12-2018      Truck
03-12-2018      Car
04-12-2018      Bike

의 일부로 데이터를 청소 프로세스,나를 확인해야는 데이터는 시간 순서대로 표시합니다. 그래서 내가 필요로하는지 확인하려면 날짜를 행한 후에 날짜 이전 행이 있습니다. 하지 않을 경우,필요를 삭제합니다. 나는 지시를 사용하지 판 라이브러리입니다.

그래서 지금까지 했을 다음 단계는 지금까지:



#If the file name is - 'Input_file'

from openpyxl import load_workbook
from datetime import datetime

#Reading the file 
wb = load_workbook(Input_file)
sheet = wb.active

#Reading the Date column in the file
Date_column = sheet['A']


#Reading each row and the date in each row to compare it with the previous row date
for x in range(len(Date_column)):
    Datenow = Date_column[x].value

    Datebef= Date_column[x-1].value
    
    Check = Datenow > Datebef

    print(Check)

오류를 얻을하려고 할 때 비교 datetime 개체:


TypeError: unsupported operand type(s) for -: 'str' and 'datetime.datetime'

문제를 확인할 때 내가 입력 날짜의 열,그것을 밖으로 나오는 날짜/시간입니다.datetime 만으로도 비교 모두 날짜/시간입니다.datetime 체,그것은 나에게 말하는 한은 문자열과 한 날짜/시간입니다.datetime 개체입니다. 혼란한 경우 값을 읽고 있는 동일한 열에서,방법 중 하나로 문자열과 한 날짜/시간입니다.날짜/시간입니다.

고 있는지 어떻게 확인할 수 있는 값으로 날짜/시간입니다.datetime 나는 비교할 수 있습니다.

감사

datetime openpyxl python
2021-11-24 00:38:46
1

최고의 응답

0

을 확인할 수 있는 데이터의 유형 셀룰라 전에 비교한다. 또한,당신은 신중하게 생각해야에 대해 비교 및 순서의 행을 삭제하기 때문에 당신 이는 동안 당신은 이동합니다. 대신해야 합니다 목록을 만들의 행을 삭제하고 그들을 삭제합 반대의 순서.

이런 작업해야 합니다.

import datetime

previous_date = datetime.date(2017, 12, 31) # adjust as necessary
rows_to_delete = []

for row in ws.iter_rows(min_col=1, max_col=1, min_row=2):
    cell = row[0]
    if not isinstance(cell.value, datetime.date):
        continue
    if cell.value < previous_date:
        rows_to_delete.append(cell.row)
    previous_date = cell.value

for row in reversed(rows_to_delete):
   ws.delete_rows(row)
2021-11-25 10:38:07

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................