好久没写博客了,最近在写项目时用到了 numpy.datetime64这个神坑,遇到了太多的问题,百度资料也很少(还是去stackoverflow搜吧),大多数还是错的。因此在这里做个总结,写个技术笔记,希望也能帮到大家吧!
- datetime64 与 datetime.datetime的相互转换:
一行代码解决:
(dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's') #dt64为datetime64类型的变量
- 如何从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
获取吧。