处理纽约市车祸数据集。目前的csv有2012年的数据,我想提取2017年的价值。事情是DATE是一个对象dtype,并尝试这样的事情最终花了太长时间
data = data[(pd.to_datetime((data['DATE'])).dt.year == 2017)]
以下是数据样本的外观
有没有人可能知道更快或更有效的方式?谢谢。
答案 0 :(得分:2)
瓶颈几乎可以肯定是datetime
转化。
要提高效果,您可以使用infer_datetime_format
的{{1}}参数。根据{{3}}:
infer_datetime_format :布尔值,默认为False
如果为True且未给出格式,请尝试推断格式 日期时间字符串,如果可以推断,请切换到更快的方法 解析它们。在某些情况下,这可以提高解析速度 〜5到10倍。
例如:
pd.to_datetime
或者,您可以指定docs:
data['DATE'] = pd.to_datetime(data['DATE'], infer_datetime_format=True)
data = data[data['DATE'].dt.year == 2017)]