python - 日期时间转换失败
问题描述
很抱歉问,但我尝试了几天,但未能在 Python 中转换日期时间。
我一直在尝试将第一列(日期)转换为日期时间格式。然后减去 7 小时和 30 分钟作为名为“PDN 日期”的新列。由于 'Date' 列中有错误数据(例如字符串),我使用“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
*合并谷歌驱动器中的所有文件:
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()
解决方案
您很接近,请更改%y
为%Y
匹配年份格式YYYY
,并且/
改为-
:
Tonnage1["Date"]=pd.to_datetime(Tonnage1["Date"],
format='%d/%m/%Y %H:%M:%S',
errors='coerce')
推荐阅读
- java - 使用 Jackson 和 Jersey 反序列化 java.ws.rs 实体会引发异常
- python - 有条件地将一幅图像的像素值分配给另一幅图像
- php - 水平表而不是使用 PHP 的垂直表
- javascript - 使用 innerHTML 的消息输出
- python - scrapy 将 argu 传递给 selenium
- python - Python (3.7+) 多处理:用 asyncio 替换 master 和 worker 之间的管道连接以实现 IO 并发
- ruby-on-rails - 在 Rails 应用程序构建中跟踪最新的稳定 ruby 版本
- pyevolve - Pyevolve - 染色体总和 = 1
- c# - C#如何操作列表以从不同的字符构建单词?
- list - 在 Prolog 中列出的元组