从字符串列表中提取某些元素并使用Pandas转换为datetime

时间:2017-01-08 18:49:25

标签: python datetime pandas

我有一个列表,例如名为XX在特定目录中包含多个文件名。例如:

X = ['director_send_20140212', 'send_help20150315', 'hello_jeep_20160322'....etc]

现在,我想从这些列表中提取日期并将其转换为日期的日期时间索引,以便我可以使用它来按日期索引数据帧。所以从上面的例子我只想要三个日期......但实际上它是一个更大的文件名集合

为了让生活更轻松,所有日期都从20开始(即2000年及以后),并且没有20个文件名中出现任何其他地方的情况。此外,格式为yyyymmdd/

所以我想使用pandas提供的日期时间索引创建一系列日期!

1 个答案:

答案 0 :(得分:1)

我对文件名的命名约定做了一些假设。主要是日期是下划线后面的数据的最后一部分,并且最后一部分不包含不是日期的数字数据。

话虽如此,这是一个列表理解的例子:

>>> from datetime import datetime
>>> [datetime.strptime(''.join(c for c in file_name.split('_')[-1] if c.isdigit()), "%Y%m%d") for file_name in X]
[datetime.datetime(2014, 2, 12, 0, 0), datetime.datetime(2015, 3, 15, 0, 0), datetime.datetime(2016, 3, 22, 0, 0)]