时间类型数据处理
-
Timestamp(时间戳)对象:Timestamp对象用于表示特定的日期和时间点,具有精确到纳秒级的精度。它可以表示绝对时间,也可以包含时区信息。常见的操作包括:
- 创建Timestamp对象:可以使用日期字符串、整数、datetime对象等创建Timestamp对象。
- 获取时间信息:可以获取Timestamp对象的年、月、日、小时、分钟、秒等信息。
- 时间转换:可以将Timestamp对象转换为不同的字符串格式或日期格式。
- 时间运算:可以对Timestamp对象进行加减运算,计算两个时间点之间的差异。
- 时区处理:可以处理不同时区的时间,进行时区转换和时区信息的获取。
-
Timedelta(时间差)对象:Timedelta对象用于表示两个日期或时间之间的差异,以及一段时间的持续时间。它可以表示相对时间差,例如2天、3小时、30分钟等。常见的操作包括:
- 创建Timedelta对象:可以使用整数、字符串等创建Timedelta对象。
- 获取时间差信息:可以获取Timedelta对象的天数、小时数、分钟数、秒数等信息。
- 时间差运算:可以对Timedelta对象进行加减运算,计算两个日期或时间之间的差异。
- 时间转换:可以将Timedelta对象转换为不同的字符串格式。
时间类型数据处理还可以涉及到其他操作,如排序、筛选、聚合等。在数据分析和处理中,时间类型数据处理是非常重要的一部分,能够帮助我们更好地理解和分析时间相关的数据。*
时间类型对象的概念:
时间类型对象是指在编程中表示时间的一种数据类型。它可以用来存储和操作时间相关的信息,如年、月、日、小时、分钟和秒等。时间类型对象通常包含一组方法,可以用来获取、设置和计算时间,比如获取当前时间、计算两个时间之间的差异等。时间类型对象的使用可以使程序更加灵活地处理时间相关的任务,如计时、定时执行任务、日期计算等。
字符串存储的时间
时间在任何计算机语言中都可以用字符串表示,如’2023/11/11 11:11:11’ 。
字符串存储的时间有一些缺点,如无法计算‘2018/6/12’和‘2023/5/21’之间的天数。时间类型的对象
Pandas库中封装了多个和时间相关的类。
这些类对应的时间类型对象拥有可以方便地进行时间计算、局部时间提取的方法和属性。常用的时间相关的类有Timestamp.Timedelta和Period 。
Timestamp时间对象:
两种生成Timestamp时间对象的方法
1.通过pd.Timestamp()类来生成
# 通过pd.Timestamp()类来生成
time = pd.Timestamp(2023,5,21,13,14,0)
print('生成的时间是:',time)
print('它的类型是:',type(time))
2.通过pd.to_datetime()函数来生成
# 通过pd.to_datetime()函数来生成
time_str = '2023-05-21 13:14:00'
print('时间字符串是:',time_str)
print('它的类型是:',type(time_str))
time2 = pd.to_datetime(time_str)
print('转换后的打印结果是:',time2)
print('它的类型是:',type(time2))
Timestamp时间对象的常用属性
- 时间对象可以通过其属性来查看它的局部时间
- 属性名分别为: year\month\day\hour\minute\second
- 分别对应着年、月、日、时、分、秒
time = pd.Timestamp(2022,5,21,13,14,0)
print('生成的时间是:',time)
print('年:',time.year)
print('月:',time.month)
print('日:',time.day)
print('时:',time.hour)
print('分:',time.minute)
print('秒:',time.second)
生成的时间是: 2022-05-21 13:14:00 年: 2022 月: 5 日: 21 时: 13 分: 14 秒: 0
小结
Timestamp时间对象是一种用于表示时间戳的数据类型,通常用于记录某个事件发生的具体时间。它可以存储从1970年1月1日00:00:00以来经过的秒数或毫秒数。Timestamp时间对象通常被广泛应用于数据库中,用于记录数据的创建时间或更新时间。
Timestamp时间对象具有以下特点:
精确性:Timestamp时间对象可以精确到毫秒级别,因此可以非常准确地表示时间戳。
时区处理:Timestamp时间对象可以存储与时区相关的信息,因此可以在不同的时区之间进行转换和比较。
可读性:Timestamp时间对象可以通过一些方法将时间戳转换为可读的日期时间格式,如年、月、日、小时、分钟和秒等。
比较和计算:Timestamp时间对象可以进行比较和计算,可以计算两个时间之间的差异,或者在时间上进行加减操作。
总之,Timestamp时间对象是一种非常有用的时间表示方式,可以方便地记录和处理时间戳信息,提供了丰富的方法和功能,使得时间相关的任务可以更加灵活和准确地完成。
Timedelta时间差对象
生成Timedelta时间差对象的两种方法
1.通过pd.Timedelta()类生成
# 通过pd.Timedelta()类生成
timedelta1 = pd.Timedelta(hours=5)
timedelta2 = pd.Timedelta(days=21)
print('1小时时间差对象:',timedelta1)
print('1天时间差对象:',timedelta2)
2.通过两个Timestamp时间对象相减得到
# 通过两个Timestamp时间对象相减得到
time = pd.Timestamp(2022,5,20,13,14,0)
time2 = pd.Timestamp(2022,5,21,13,14,0)
print('两个时间的差为:',time2-time)
3.时间差对象的属性主要有: days . seconds
# 时间差对象的属性
timedelta = pd.Timedelta(hours=1)
print('1小时时间差对象:',timedelta)
print('天数:',timedelta.days)
print('秒数:',timedelta.seconds)
小结
生成Timedelta时间差对象有两种方法:
-
使用datetime模块的timedelta函数:可以通过指定时间差的参数(天、小时、分钟、秒等)来创建Timedelta对象。例如,可以使用以下语法创建一个表示2天时间差的Timedelta对象:
from datetime import timedelta delta = timedelta(days=2)
-
使用pd.Timedelta函数:pandas库提供了更简洁的方法来创建Timedelta对象。可以使用pd.Timedelta函数,通过指定时间差的字符串参数来创建Timedelta对象。例如,可以使用以下语法创建一个表示2天时间差的Timedelta对象:
import pandas as pd delta = pd.Timedelta('2 days')
这两种方法都可以根据需要指定不同的时间单位(天、小时、分钟、秒等),以及正负数来表示时间差的方向。Timedelta对象可以用于计算两个日期或时间之间的差异,并提供了一系列方法和属性来对时间差进行操作和获取相关信息。
时间差对象和时间对象之间的运算
计算公式:
时间对象+/-时间差对象=另一个时间对象
# 时间差对象和时间对象的计算
time = pd.Timestamp(2022,5,21,13,14,0)
timedelta = pd.Timedelta(hours=1)
print(time)
print(time-timedelta)
时间对象序列及dt对象
1.时间对象序列及由Timestamp对象组成的一个序列对象
2.可以用pd.to_datetime()函数将一个时间字符串序列转换为时间度对象序列
time_series = pd.to_datetime(df[‘启动时间’])
time_series = pd.to_datetime(df['启动时间'])
小结:
dt对象是基于时间对象序列衍生出的一个用于处理序列中的时间的工具
语法:时间对象序列.dt.时间处理方法
总结:
- 时间对象序列由多个时间对象组成,可以是时间戳或时间差。
- 使用DatetimeIndex或PeriodIndex对象可以创建时间对象序列。
- dt对象是时间对象序列的属性,用于操作和获取时间序列的信息。
- dt对象提供了丰富的方法和属性,用于处理和分析时间序列。
- 使用dt对象可以方便地对时间序列进行操作和提取信息。
dt对象常用的时间处理方法有:
1.返回局部时间信息: yearlquarter\month!..
2.返回星期几: weekday ( 0~6对应星期一~星期天)
3.返回当前日期是当年的第几周:isocalendar)