【发布时间】:2016-11-10 23:04:25
【问题描述】:
我想从我得到的输入数据中生成时间/日期格式字符串。 有没有简单的方法可以做到这一点?
我的输入数据如下所示:
'01.12.2016 23:30:59,123'
所以我的代码应该生成如下格式字符串:
'%d.%m.%Y %H:%M:%S,%f'
背景:
我使用pandas.to_datetime() 生成日期时间对象以供进一步处理。这很好用,但是这个函数会变慢(使用dateutil.parser.parsehere),有很多数据(>~50k)。目前,我在我的代码中提供了上面硬编码的格式字符串,以加快to_datetime() 的速度,这也很有效。现在我想在代码中生成格式字符串,以便更灵活地处理输入数据。
编辑(因为前两个答案不适合我的问题):
我想生成格式字符串而不是日期时间字符串。
edit2:
提出问题的新方法:我正在读取包含大量数据的文件。每行数据都有一个时间戳,格式如下:'01.12.2016 23:30:59,123'。我想将这些时间戳转换为日期时间对象。为此,我目前正在使用 pandas.to_datetime() 。此功能运行良好,但由于我得到了一些包含超过 50k 数据集的文件,所以它变得很慢。为了加快这个过程,我在函数 pandas.to_datetime(format='%d.%m.%Y %H:%M:%S,%f') 中传递了一个格式字符串。这加快了进程,但灵活性较差。因此,我只想为第一个数据集评估格式字符串,并将其用于其余 50k 或更多数据集。
这怎么可能?
【问题讨论】:
-
所以你要重新发明格式猜测,这已经在
pandas.to_datetime()中实现了? ;) 你事先知道你将拥有什么格式吗? -
你怎么知道
01.12.2016是1 Dec还是12 Jan? -
@MaxU:不,我不想重新发明它,因为我在问。目前我知道格式,这就是我将格式字符串硬编码到我的代码中的原因。但我想让它更灵活并保持快速。也许你应该阅读这个问题......
-
您应该考虑重新提出您的问题。很明显,很多人对你的问题感到困惑。尽管您进行了编辑,但它看起来好像您要格式化日期时间字符串。与其反驳别人所说的试图帮助你,也许你应该采取不同的方法。只是我的 0.02 美元
-
@Burner,我也没有从你的问题中得到
infer_datetime_format=True有什么问题 - 它应该与你将要“重新发明”的内容完全相同,IMO
标签: python datetime pandas string-to-datetime