की तुलना 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.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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में