繁体   English   中英

无法将日期时间格式更改为 python 中的指定格式

[英]Not able to change DateTime Format to a specified format in python

在 python 中将日期字符串“1/09/2020”转换为字符串“1-Sep-2020”。 尝试 stackoverflow 中提到的每个解决方案,但无法更改它。 有时值错误来自数据格式不匹配,当我尝试匹配它时,错误会超出范围。 excel 数据有问题还是我写错了代码。 请帮我解决这个问题???

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:日期超出月份的范围或与格式不匹配

方法 1-尝试,因为它显示错误日期超出范围

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文件

所需格式

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

日期 = df2['PlodDate'].split('/')

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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