擅长:python、mysql、java
<h2>使用缓存优化日期分析</h2>
<p>读取所有数据然后转换它总是比读取CSV时转换慢。因为如果您立即执行,就不需要对所有数据重复两次。你也不必把它作为字符串存储在内存中。</p>
<p>我们可以定义自己的日期解析器,它使用缓存来存储已经看到的日期。</p>
<pre><code>import pandas as pd
cache = {}
def cached_date_parser(s):
if s in cache:
return cache[s]
dt = pd.to_datetime(s, format='%Y%m%d', coerce=True)
cache[s] = dt
return dt
df = pd.read_csv(filen,
index_col=None,
header=None,
parse_dates=[0],
date_parser=cached_date_parser)
</code></pre>
<p>与@fixxer的答案具有相同的优点,只解析每个字符串一次,额外的好处是不必读取所有数据然后解析它。节省内存和处理时间。</p>