python - 将 df.index dtype='datetime64[ns]' 数组转换为 Date
问题描述
我用pd.Grouper
3 天的频率对时间序列进行分组。要检索时间数组,我使用date = df.index.values
它返回一个时间数组,如下所示:
array(['2010-01-31T00:00:00.000000000', '2010-02-03T00:00:00.000000000',
'2017-05-12T00:00:00.000000000', '2017-05-15T00:00:00.000000000',
'2017-05-18T00:00:00.000000000', '2017-05-21T00:00:00.000000000',
'2017-05-24T00:00:00.000000000', '2017-05-27T00:00:00.000000000',
'2017-05-30T00:00:00.000000000', '2017-06-02T00:00:00.000000000',
'2017-06-05T00:00:00.000000000', '2017-06-08T00:00:00.000000000',
'2017-06-11T00:00:00.000000000', '2017-06-14T00:00:00.000000000',
'2017-06-17T00:00:00.000000000', '2017-06-20T00:00:00.000000000',
'2017-06-23T00:00:00.000000000', '2017-06-26T00:00:00.000000000',
'2017-06-29T00:00:00.000000000', '2017-07-02T00:00:00.000000000',
'2017-07-05T00:00:00.000000000', '2017-07-08T00:00:00.000000000',
'2017-07-11T00:00:00.000000000', '2017-07-14T00:00:00.000000000',
'2017-07-17T00:00:00.000000000', '2017-07-20T00:00:00.000000000',
'2017-07-23T00:00:00.000000000', '2017-07-26T00:00:00.000000000',
'2017-07-29T00:00:00.000000000', '2017-08-01T00:00:00.000000000',
'2017-08-04T00:00:00.000000000', '2017-08-07T00:00:00.000000000'],
dtype='datetime64[ns]')
我一直在努力争取约会(最终摆脱 MJD)。当我复制该数组的 1-2 个元素并执行此操作时,它会起作用;
times =['2010-02-03T00:00:00.000000000','2010-02-03T00:00:00.000000000']
t = Time(times, format='isot', scale='utc')
print(t.mjd)
>>[55230. 55230.]
但是,我无法对整个数组使用相同类型的代码
from astropy.time import Time
t = Time(date, format='isot', scale='utc')
print(t.mjd)
它给了我一个错误“输入值与格式类 isot 不匹配”。所以,我猜想 Time 需要列表而不是数组,但是将 Date 更改为 list 并不能解决问题。我无法解决,上面的示例是 2 个字符串的列表,它工作正常。我在这里做错了什么?我尝试了其他几种使用 pandas 并尝试循环元素的方法。谢谢您的帮助。阿比
解决方案
由于 astropy 3.1 内置了对 的支持datetime64
,所以你可以简单地这样做:
In [2]: dates = np.array(['2010-01-31T00:00:00', '2010-02-03T00:00:00'],
...: dtype='datetime64[ns]')
...:
In [3]: tm = Time(dates)
In [4]: tm.mjd
Out[4]: array([55227., 55230.])
推荐阅读
- javascript - JavaScript 日期未正确添加
- android - 有没有办法将编译的 32 位本机库用作 64 位库
- web-services - 有状态的 SOAP Web 服务示例
- spring - 密封类作为一个实体
- ansible - 有没有办法从库存中覆盖 ansible ssh 用户进行播放?
- nmake - 如何在 nmake 中使用条件
- javascript - 未捕获的类型错误:this.is 不是函数
- openstack - 为什么在 openstack 地平线上设置浮动 ip 时操作顺序很重要?
- r - 使用 R、Shiny、DT 和 DBI 返回查询结果后嵌入图像
- azure - Internet Explorer 11 是否无法在频道中渲染来自 QnaMaker 的图像?