【发布时间】:2021-09-20 07:11:35
【问题描述】:
很抱歉,我尝试了几天,但未能在 Python 中转换日期时间。
我一直在尝试将第一列(日期)转换为日期时间格式。 然后减去 7 小时和 30 分钟作为名为“PDN 日期”的新列。 由于“日期”列中有错误数据(例如字符串), 我使用“errors='coerce'”将坏数据转换成NAN
import datetime
Tonnage1["PDN Date"]=pd.to_datetime(Tonnage1["Date"], format='%d-%m-%y %H:%M:%S',errors='coerce')+datetime.timedelta(hours=-7,minutes=-30)
Tonnage1.head()
最终,我得到的是“PDN 日期”列中的所有 NAT。 我能做些什么? :'(
附录:
这是整个脚本:
*获取谷歌驱动器中的文件:
from google.colab import drive
drive.mount ('/content/drive')
*照常导入所有内容:
import pandas as pd
import glob
import numpy as np
import os
import datetime
import openpyxl
*合并 google drive 中的所有文件:
li=[]
os.chdir('/content/drive/MyDrive/Raw Data/')
allFiles=(glob.glob("*/*/*.xls"))
for file in allFiles:
df=pd.read_excel(file,index_col=False)
li.append(df)
Tonnage=pd.concat(li,axis=0,ignore_index=True)
删除不必要的列:
Tonnage1=Tonnage.drop([ "Unnamed: 5","Unnamed: 6","Unnamed: 7","Unnamed: 8","Unnamed: 9","Unnamed: 10","Unnamed: 11","Unnamed: 12","Unnamed: 13","Unnamed: 14","Unnamed: 15","Unnamed: 16","Unnamed: 17"],axis=1)
*重命名标题
Tonnage1 = Tonnage1.rename(columns={'Unnamed: 0':'Date','Unnamed: 1':'formula','Unnamed: 2':'Customer','Unnamed: 3':'sortClass','Unnamed: 4':'weight'})
*终于转换日期
Tonnage1["PDN Date"]=pd.to_datetime(Tonnage1["Date"], format='%d-%m-%Y %H:%M:%S',errors='coerce')+datetime.timedelta(hours=-7,minutes=-30)
Tonnage1.head()
【问题讨论】:
-
请don't upload text as image。编辑您的问题以包含所有信息。另见How to Ask。
-
我试图将 $y 更改为 %Y 但它导致所有 NAT。
-
@Valkyrie - 也将
-更改为/
标签: python pandas date datetime