Python 如何将多个时间戳转换为datetime,对所有时间戳使用相同的格式?
我在看数据文件。数据始终具有某种形式的时间戳,这种时间戳在整个给定文件中是一致的,但格式因文件而异 给定的文件通常以01/02/17开头。很容易猜测这一年是最后一年,但它是DMY还是MDY?稍后的时间戳可能是27/02/17,这是明确的,我如何返回并确保01/02/17被解析为DMY,或者如果我后来发现01/31/17,如何解析为MDY 我试图对dateutil.parser进行包装,但找不到返回任何格式信息的方法(即使格式不明确,因此使用了默认顺序) 我尝试过的一些事情: (一) 在这里,我必须在查看文件后手动更改每个文件的DATETIMEFORMAT (二) 使用python的dateutil.parser,这将正确处理大多数时间戳,但我无法为所有文件设置默认顺序。当我遇到时,我正在努力获取格式信息 [https://stackoverflow.com/questions/53892450/get-the-format-in-dateutil-parse][1]Python 如何将多个时间戳转换为datetime,对所有时间戳使用相同的格式?,python,string-formatting,python-datetime,Python,String Formatting,Python Datetime,我在看数据文件。数据始终具有某种形式的时间戳,这种时间戳在整个给定文件中是一致的,但格式因文件而异 给定的文件通常以01/02/17开头。很容易猜测这一年是最后一年,但它是DMY还是MDY?稍后的时间戳可能是27/02/17,这是明确的,我如何返回并确保01/02/17被解析为DMY,或者如果我后来发现01/31/17,如何解析为MDY 我试图对dateutil.parser进行包装,但找不到返回任何格式信息的方法(即使格式不明确,因此使用了默认顺序) 我尝试过的一些事情: (一) 在这里,我必
用于范围内的idx(df.shape[0]):
tmpdate=parser.parse(df[DATETIME][idx])
如果不明确(tmpdate):
formatstr=get\u format\u str(df、tmpdate、idx)
打破
df[DATETIME]=pd.to_DATETIME(df[DATETIME],format=formatstr)
在这里,我寻找一个明确的时间戳,并尝试使用它重新创建pd.to_datetime()的格式字符串。不幸的是,日期时间不明确,无法准确解析。从理论上讲,添加逻辑来执行健全性检查(检查月份是否高于12个月,等等)是可行的,尽管这并不可靠 一个不错的选择是将特定文件映射到datetime格式,以便在解析时指定。例如: 文件 格式 菲拉 年月日 文件 年月日 请阅读和介绍旅游。“告诉我如何解决这个编码问题”是。我们希望您做出一个明确的决定,然后就您的实施提出一个具体的问题。
DATETIMEFORMAT = '%m/%d/%y %H:%M'
df[DATETIME] = pd.to_datetime(df[DATETIME],format=DATETIMEFORMAT)
datecol = []
for idx in range(df.shape[0]):
tmpdate = parser.parse(df[DATETIME][idx])
datecol.append(pd.to_datetime(tmpdate))
df[DATETIME] = datecol