您可以像DatetimeIndex一样向Series和DataFrame传递日期和字符串,具有PeriodIndex,有关详细信息,请参考 DatetimeIndex 部分字符串索引。 来自时区感知的DatetimeIndex或Timestamp的值将被本地化到时区。 Timestamp和Period的列表将自动强制转换为DatetimeIndex和PeriodIndex。 构造函数: In [50]: pd.DatetimeIndex(["2018-01-01", "2018-01-03", "2018-01-05"]) Out[50]: DatetimeIndex([' DatetimeIndex 可以像常规索引一样使用,并提供所有智能功能,如选择、切片等。
精准匹配精确索引截断与花式索引日期/时间组件 DatetimeIndex 主要用作 Pandas 对象的索引。 DatetimeIndex 对象支持全部常规 Index 对象的基本用法,及一些列简化频率处理的高级时间序列专有方法。 DatetimeIndex 可以当作常规索引,支持选择、切片等方法。 DatetimeIndex 局部字符串索引还支持多层索引 DataFrame。 , 但因为打乱了 DatetimeIndex 频率,丢弃了频率信息,见 freq=None: In [140]: ts2[[0, 2, 6]].index Out[140]: DatetimeIndex
Pandas-22.日期 创建日期范围的常用函数 日期范围 print(pd.date_range('2020-1-21', periods=5)) ''' DatetimeIndex(['2020-01 dtype='datetime64[ns]', freq='D') ''' 指定频率 print(pd.date_range('2020-1-21', periods=5, freq="M")) ''' DatetimeIndex 不包括周六日 print(pd.date_range('2011/11/03', periods=5)) print(pd.bdate_range('2011/11/03', periods=5)) ''' DatetimeIndex 11-05', '2011-11-06', '2011-11-07'], dtype='datetime64[ns]', freq='D') DatetimeIndex dtype='datetime64[ns]', freq='B') ''' 指定起止日 print(pd.date_range('2011/11/03', '2011/11/11')) ''' DatetimeIndex
Pandas时间戳索引-DatetimeIndex pd.DatetimeIndex()与TimeSeries时间序列 pd.DatetimeIndex()可以直接生成时间戳索引,支持使用str、datetime.datetime 单个时间戳的类型为Timestamp,多个时间戳的类型为DatetimeIndex,示例如下: rng = pd.DatetimeIndex(['12/1/2017','12/2/2017','12/3 /2017','12/4/2017','12/5/2017']) print(rng,type(rng)) print(rng[0],type(rng[0])) >>> DatetimeIndex([' 以DatetimeIndex为index的Series,为TimeSries时间序列 举个栗子: st = pd.Series(np.random.rand(len(rng)), index = rng , normalize = True) print(rng4) >>> DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01
3 转为 DatetimeIndex 转化为 DatetimeIndex 类型后,直接获取 hour 和 minute 属性: atime = pd.DatetimeIndex(df['a']) btime = pd.DatetimeIndex(df['b']) df['amins'] = atime.hour * 60 + atime.minute df['bmins'] = btime.hour * 5 总结 以上就是使用 pandas 三种方法求解时分表示数据的分钟数差值,使用到的 API 包括: to_datetime 转化为日期时间 datetime 类型列的 dt 访问器 DatetimeIndex
= [ '2017-12-21', '2017-12-22', '2017-12-23'] t3 = pd.to_datetime(lst_date) print(t3,type(t3)) >>> DatetimeIndex '2017-2-5' '2017-2-6'] <class 'numpy.ndarray'> 当errors = 'coerce'时,不同数据类型的数据将会返回NaT,结果认为DatetimeIndex ,'2017-2-5','2017-2-6'] t4 = pd.to_datetime(date3, errors = 'coerce') print(t4,type(t4)) >>> DatetimeIndex 请通过迭代创建一个时间列表(如图,时间区间为任意一个月,这里可以用for语句),然后转化成DatetimeIndex,并print月中是多少号 ? 请如图创建一个包含时间日期的txt文件,通过open语句读取后转化成DatetimeIndex ?
pd.date_range('2022/09/18', '2022-09-28')) print(pd.date_range('2022/9/18', '2022-9-19', freq="3H")) DatetimeIndex 08', '2022-01-09', '2022-01-10'], dtype='datetime64[ns]', freq='D') DatetimeIndex 08', '2022-01-09', '2022-01-10'], dtype='datetime64[ns]', freq='D') DatetimeIndex 08', '2022-01-09', '2022-01-10'], dtype='datetime64[ns]', freq='D') DatetimeIndex 31', '2022-04-30', '2022-05-31'], dtype='datetime64[ns]', freq='M') DatetimeIndex
date_index2 = pd.date_range('2022/04/01', '2022/04/11') print(date_index, date_index2, sep = '\n') 结果如下: DatetimeIndex pd.date_range(end = '2022-06-01', periods = 5) print(start_date_ls, end_date_ls, sep = '\n') 结果如下: DatetimeIndex 04-03', '2022-04-04', '2022-04-05'], dtype='datetime64[ns]', freq='D') DatetimeIndex 12:00:00', '2022-04-01 16:00:00'], dtype='datetime64[ns]', freq='4H') DatetimeIndex 04:30:00', '2022-04-01 06:00:00'], dtype='datetime64[ns]', freq='90T') DatetimeIndex
dt.hour * 60 + df['btime'].dt.minute df 最后求分钟数差值: df['mins'] = df['amins'] - df['bmins'] 小技巧 13 转为 DatetimeIndex 求时分(HH:mm)的分钟差 转化为 DatetimeIndex 类型后,直接获取 hour 和 minute 属性: atime = pd.DatetimeIndex(df['a']) btime = pd.DatetimeIndex(df['b']) df['amins'] = atime.hour * 60 + atime.minute df['bmins'] = btime.hour * 60
kaggle_bike_competition_train.csv',header = 0) #列名 df_train.dtypes # 把月、日、和 小时单独分出来,放到3列中 df_train['month'] = pd.DatetimeIndex (df_train.datetime).month df_train['day'] = pd.DatetimeIndex(df_train.datetime).dayofweek df_train['hour '] = pd.DatetimeIndex(df_train.datetime).hour 这样就有额外的3个列
ts2 = pd.to_datetime(["2024-09-03 08:30:00","2024-09-03 10:30:00","2024-09-03 12:30:00"])ts2DatetimeIndex ', freq='D')指定频率freq默认是以天为频率:dr3 = pd.date_range(start="2024-01-01",periods=6, freq="D") # 年dr3 DatetimeIndex ]', freq='D')以月为频率,生成6个周期数的数据dr3 = pd.date_range(start="2024-01-01",periods=6, freq="M") # 月dr3 DatetimeIndex ]', freq='2YE-DEC')以星期为频率:dr3 = pd.date_range(start="2024-01-01",periods=6, freq="W") # 星期 dr3 DatetimeIndex freq='D')# 标准化数据dr5 = pd.date_range(start="2024-01-01 01:25:38",periods=6, normalize=True) dr5 DatetimeIndex
Pandas时间处理 除了使用 Python 内置的 strptime() 方法外,你还可以使用 Pandas 模块的 pd.to_datetime() 和 pd.DatetimeIndex() 进行转换 ------------ 输出结果如下: 2023-03-23 12:00:00 -0.859986 2023-03-24 18:00:00 -0.085590 dtype: float64 DatetimeIndex () 使用 Datetimeindex() 函数设置时间序,示例如下: import pandas as pd import numpy as np date = pd.DatetimeIndex([
date_range方法产生,用法如下 >>> import datetime >>> pd.to_datetime(['2020-07-01', '2020-07-02', '2020-07-03']) DatetimeIndex 2020-07-03'], dtype='datetime64[ns]', freq=None) >>> pd.date_range('2018-07-01', periods=3, freq='D') DatetimeIndex '2018-07-01', '2018-07-02', '2018-07-03'], dtype='datetime64[ns]', freq='D') to_datetime函数将列表中的元素转换为DatetimeIndex , dtype='datetime64[ns]', freq='D') # 按一周,即7天 >>> pd.date_range('2018-01-01', periods=3, freq='W') DatetimeIndex , dtype='datetime64[ns]', freq='W-SUN') # 按小时 >>> pd.date_range('2018-01-01', periods=3, freq='H') DatetimeIndex
频率规律的复杂花式索引也会导致一个 DatetimeIndex,尽管频率会丢失: In [141]: ts2.iloc[[0, 2, 6]].index Out[141]: DatetimeIndex 频率的规律,但结果仍然是DatetimeIndex,尽管频率丢失了: In [141]: ts2.iloc[[0, 2, 6]].index Out[141]: DatetimeIndex(['2011 偏移 可以将偏移量与Series或DatetimeIndex一起使用,以将偏移量应用于每个元素。 与任何其他偏移一样,它可以用于创建DatetimeIndex或添加到datetime或Timestamp对象中。 进行偏移 偏移可以与Series或DatetimeIndex一起使用,以将偏移应用于每个元素。
我们用一张表来表示: 类型 标量class 数组class pandas数据类型 主要创建方法 Date times Timestamp DatetimeIndex datetime64[ns]ordatetime64 Timestamp 作为index会自动被转换为DatetimeIndex: In [33]: dates = [ ....: pd.Timestamp("2012-05-01"), In [36]: ts.index Out[36]: DatetimeIndex(['2012-05-01', '2012-05-02', '2012-05-03'], dtype='datetime64 的起点: In [67]: pd.to_datetime([1, 2, 3], unit="D", origin=pd.Timestamp("1960-01-01")) Out[67]: DatetimeIndex In [68]: pd.to_datetime([1, 2, 3], unit="D") Out[68]: DatetimeIndex(['1970-01-02', '1970-01-03', '1970
我们用一张表来表示: 类型 标量class 数组class pandas数据类型 主要创建方法 Date times Timestamp DatetimeIndex datetime64[ns]ordatetime64 Timestamp 作为index会自动被转换为DatetimeIndex: In [33]: dates = [ ....: pd.Timestamp("2012-05-01"), In [36]: ts.index Out[36]: DatetimeIndex(['2012-05-01', '2012-05-02', '2012-05-03'], dtype='datetime64 的起点: In [67]: pd.to_datetime([1, 2, 3], unit="D", origin=pd.Timestamp("1960-01-01")) Out[67]: DatetimeIndex In [68]: pd.to_datetime([1, 2, 3], unit="D") Out[68]: DatetimeIndex(['1970-01-02', '1970-01-03', '1970
同时,一系列的时间戳可以组成DatetimeIndex,而将它放到Series中后,Series的类型就变为了datetime64[ns],如果有涉及时区则为datetime64[ns, tz],其中tz 通过这个简单的例子,就能够容易地总结出官方文档中的这个表格: 概念 单元素类型 数组类型 pandas数据类型 Date times Timestamp DatetimeIndex datetime64 时间戳(Date times)的构造与属性 概念 单元素类型 数组类型 pandas数据类型 Date times Timestamp DatetimeIndex datetime64[ns] Time '> # 多个时间数据,将会转换为pandas的DatetimeIndex 输出为: 时间戳格式转换 在极少数情况,时间戳的格式不满足转换时,可以强制使用format进行匹配: temp = ,如果想要转为datetime64[ns]的序列,需要显式用Series转化: # DatetimeIndex # DatetimeIndex(['2020-01-01', '2020-01-03'],
as pd import numpy as np # data.range() 创建日期序列 print(pd.date_range('1/1/2011', periods=5)) """ 输出: DatetimeIndex 2)更改日期频率 # 更改日期频率 # 按月,输出每月的1号的前一天 print(pd.date_range('1/1/2011', periods=5, freq='M')) """ 输出: DatetimeIndex ()不同,它不包括周六和周天 # bdate_range() 商业日期范围,不包括周六和周天 print(pd.bdate_range('8/2/2019', periods=5)) """ 输出: DatetimeIndex start = pd.datetime(2019, 8,2) end = pd.datetime(2019, 8, 8) print(pd.date_range(start, end)) """ 输出: DatetimeIndex
1.230427 2020-05-14 11:30:00 -0.012184 2020-05-15 11:30:00 -0.786641 Freq: D, dtype: float64 ts.index DatetimeIndex print(ts.index.tz) # tz属性为None None # 时区集合生成 pd.date_range('5/10/2020',periods=10,freq='D',tz='UTC') DatetimeIndex :30:00+00:00 -0.012184 2020-05-15 11:30:00+00:00 -0.786641 Freq: D, dtype: float64 ts_utc.index DatetimeIndex 0.012184 2020-05-15 19:30:00+08:00 -0.786641 Freq: D, dtype: float64 实例化方法 tz_localzie、tz_convert是DatetimeIndex 的实例化方法 ts.index.tz_localize('Asia/Shanghai') DatetimeIndex(['2020-05-10 11:30:00+08:00', '2020-05-11
0.239276 2011-01-10 -0.704732 2011-01-12 -1.502936 dtype: float64 # 这些datetime对象实际上是被放在一个DatetimeIndex 中 >>> ts.index DatetimeIndex(['2011-01-02', '2011-01-05', '2011-01-07', '2011-01-08' ,'2011-01-10', '2011-01-12'] ,dtype='datetime64[ns]', freq=None) # DatetimeIndex中的各个标量值是 10, freq = 'W-WED') >>> dates_1 = pd.date_range('2/1/2020', periods = 10, freq = 'W-SUN') >>> dates DatetimeIndex normalize选项即可实现该功能: >>> pd.date_range('2012-05-02 12:56:31', periods=5, normalize=True) >>> DatetimeIndex