我有一个坐标为“时间”的数据数组arr
。
arr
:
<xarray.DataArray 'T' (time: 731)>
array([244.40161, 244.39998, ..., 244.40936, 244.40549], dtype=float32)
Coordinates:
* time (time) datetime64[ns] 1979-01-01T09:00:00 ... 1980-12-31T09:00:00
提取前5个时间坐标arr.time.values[:5]
:
array(['1979-01-01T09:00:00.000000000', '1979-01-02T09:00:00.000000000',
'1979-01-03T09:00:00.000000000', '1979-01-04T09:00:00.000000000',
'1979-01-05T09:00:00.000000000'], dtype='datetime64[ns]')
我希望我的日期时间格式为'1979-01-01'
,'1979-01-02'
等,而没有时间,或者将时间标准化为00:00:00。
对于熊猫数据框,有一些解决方案,但由于功能不适用(Converting between datetime, Timestamp and datetime64,Keep only date part when using pandas.to_datetime),我不太确定如何在此处应用它们
答案 0 :(得分:1)
有几种方法可以执行此操作。我经常使用的快速而肮脏的方法是使用重采样:
da.resample(time='1D').first()
更健壮的方法是直接修改时间索引:
da['time'] = da.indexes['time'].normalize()
最后,通常可以通过创建新的日期时间索引来完成此操作:
da['time'] = pd.date_range(da['time'][0], periods=len(da['time']), freq='1D')
请注意,第二个和第三个示例在计算上将比第一个便宜,但确实需要直接使用基础Pandas索引。