我有一个使用这种语法的日志(文本)文件
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 而不删除它们,您甚至可以将日期列传递给直方图函数。
