Skip to main content
 首页 » 编程设计

python之从文本构建日期数组

2025年05月04日20bjzhanghao

我有一个使用这种语法的日志(文本)文件

1/21/18, 22:48 - ~text~ 
1/21/18, 22:48 - ~text~ 
1/23/18, 22:48 - ‪~text~ 
~text~ 
~text~ 
1/24/18, 22:48 - ~text~ 

我想获取所有日期的数组,例如 ["1/21/18","1/21/18","1/23/18","1/24/18"]

因为我的最终目标是为每个日期构建一个频率直方图,以了解每天发生的事件数量(只是为了了解事件随时间的演变)(所以,如果你想给提示做这更容易,欢迎!)

我已经根据问题 4709652 尝试了正则表达式,但没有按预期工作。无论如何,我的问题之一是文本文件很大(数百兆字节),导致速度变慢。

执行此操作的最佳方法是什么?

谢谢!

请您参考如下方法:

正如@Patrick 所建议的,pandas 将是一种更简单有效的方法。

import pandas as pd 
p = pd.read_csv(<name of the file>,names=["date","random"]) 
p['date'] = pd.to_datetime(p['date'],errors='coerce') #converts the first column to date type and puts a NaT in place of texts. 
p = p.dropna() #drop rows containing NaT 
print(p['date']) 

输出:

0   2018-01-21 
1   2018-01-21 
2   2018-01-23 
5   2018-01-24 

如果它忽略 NaT 而不删除它们,您甚至可以将日期列传递给直方图函数。