简体   繁体   中英

Not able to change DateTime Format to a specified format in python

Convert date string "1/09/2020" to string "1-Sep-2020" in python. Try every solution mentioned in stackoverflow but not able to change it. Sometimes the Value error comes data format doesn't match, when I try to match it then error come day out of range. Is there problem in excel data or I am writing the code wrong. Please help me to solve this issue???

xlsm_files=['202009 - September - Diamond Plod Day & Night MKY021.xlsm']

import time
import pandas as pd
import numpy as np
import datetime
df=pd.DataFrame()
for fn in xlsm_files:
    all_dfs=pd.read_excel(fn, sheet_name=None, engine='openpyxl')
    list_data = all_dfs.keys()
    all_dfs.pop('Date',None)
    all_dfs.pop('Ops Report',None)
    all_dfs.pop('Fuel Report',None)
    all_dfs.pop('Bit Report',None)
    all_dfs.pop('Plod Example',None)
    all_dfs.pop('Plod Definitions',None)
    all_dfs.pop('Consumables',None)
    df2 = pd.DataFrame(columns=["PlodDate"])
    for ws in list_data:
       df1 = all_dfs[ws]
       new_row = {'PlodDate':df1.iloc[3,3]}
       df2 = df2.append(new_row,ignore_index=True)
       df2['PlodDate']=pd.to_datetime(df2['PlodDate'].astype(str), format="%d/%m/%Y")
       df2['PlodDate']=df2['PlodDate'].apply(lambda x: x.strftime("%d-%b-%Y"))
       df2

ValueError: day is out of range for month or doesnot match format

Method 1-Tried because it show error date out of range

try:
           datetime.datetime.strptime(df2['PlodDate'].astype(str).values[0],"%d/%m/%Y")
        except ValueError:
           continue
        df2['PlodDate']=pd.to_datetime(df2['PlodDate'].astype(str), format="%d/%m/%Y")
        df2['PlodDate']=df2['PlodDate'].apply(lambda x: x.strftime("%d-%b-%Y"))

Excel File Attached

所需格式

df2['PlodDate']=pd.to_datetime(df2['PlodDate'].astype(str), format="%d/%m/%Y")

date = df2['PlodDate'].split('/')

df2['PlodDate'] = datetime.date(int(date[2]), int(date[1]), int(date[0])).strftime('%d-%b-%Y')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM