好久没写博客了,最近在写项目时用到了 numpy.datetime64这个神坑,遇到了太多的问题,百度资料也很少(还是去stackoverflow搜吧),大多数还是错的。因此在这里做个总结,写个技术笔记,希望也能帮到大家吧!

  1. datetime64 与 datetime.datetime的相互转换:
    一行代码解决:
    (dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's') #dt64为datetime64类型的变量
  2. 如何从pandas.DataFrame结构中获取一段时间内的数据(前提要有时间列):
    这里解决方式比较简单,但又比较巧妙,pandas里的DataFrame 以及Series结构都是支持传入一个同样长度的bool型列表(也可也是array)数据筛选的:
    start = timelist > startTime # timelist为pandas的dataframe里的时间列,又或者是一个值为datetime64类型的list或者array,得到的结果是一个值为bool类型的list或者array
    同样
    end = timelist < endTime
    res = start == end # 用==判等符号求start与end的交集
    最后
    res = df[res] # df 为DataFrame
    或者
    res = content[res] # content为Series,与timelist一一对应

注意datetime64不支持直接获取年月日,获取比较麻烦,建议转成datetime.datetime再通过 param.year获取吧。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐