Python基础知识之时间戳的用法

写在前面        

        时间戳是处理数据经常要遇到的问题,比如nc数据中的time维度 或者pandas等结构中的时序数据,详细介绍过段时间更新一下,先上的常用方便的小代码。

        主要是利用 datetime, timedelta / np.datetime64/ pandas.date_range

代码

1. 生成一段时间,并挑选出你想要的时间(比如我只想要夏季的数据)

        注意:pd.date_range(start=None, end=None, periods=None, freq=‘D’, tz=None, normalize=False, name=None, closed=None, **kwargs)  

start:开始时间  end:结束时间  periods:偏移量  freq:频率,默认天,pd.date_range()默认频率为日历日,pd.bdate_range()默认频率为工作日  tz:时区 name:索引对象名称

import pandas as pd
start_date = '1960-06-01'
end_date = '2021-08-31'
date_range = pd.date_range(start=start_date, end=end_date)
# 过滤出夏季日期(6月1日到8月31日之间的日期) 5704
summer_dates = date_range[(date_range.month >= 6) & (date_range.month <= 8)]

2. 给定日期T,计算前一天的日期T-1 (以'1960-06-02'为例)

from datetime import datetime, timedelta
date_obj = datetime.strptime('1960-06-02', '%Y-%m-%d')
previous_day = date_obj - timedelta(days=1)
# # 将前一天的日期格式化为字符串
previous_day_str = previous_day.strftime('%Y-%m-%d')

3. 有的时候时间戳是以np.array格式,Time: array(['1960-06-01T12:00:00.000000000', '1960-06-02T12:00:00.000000000', '1960-06-03T12:00:00.000000000', '1960-06-04T12:00:00.000000000', '1960-06-05T12:00:00.000000000', '1960-06-06T12:00:00.000000000', '1960-06-07T12:00:00.000000000', '1960-06-08T12:00:00.000000000', '1960-06-09T12:00:00.000000000', '1960-06-10T12:00:00.000000000'], dtype='datetime64[ns]'),找出其中找出'1960-6-1T12:00:00.000000000'的索引

import numpy as np

# 日期数组
Time = np.array(['1960-06-01T12:00:00.000000000', '1960-06-02T12:00:00.000000000',
                 '1960-06-03T12:00:00.000000000', '1960-06-04T12:00:00.000000000',
                 '1960-06-05T12:00:00.000000000', '1960-06-06T12:00:00.000000000',
                 '1960-06-07T12:00:00.000000000', '1960-06-08T12:00:00.000000000',
                 '1960-06-09T12:00:00.000000000', '1960-06-10T12:00:00.000000000'],
                dtype='datetime64[ns]')

# 目标日期
target_date = np.datetime64('1960-06-01T12:00:00.000000000')

# 查找索引
index = np.where(Time == target_date)[0]

if index:
    print(f"目标日期的索引是:{index[0]}")
else:
    print("未找到目标日期的索引")

你可能感兴趣的:(python,开发语言)