Python中的Pandas 时间函数 time、datetime 模块和时间处理基础讲解
在Python中,有很多内置函数和模块能够处理与时间相关的数据。本文将讲解Pandas中的time和datetime模块以及时间处理的基础知识。
时间戳
时间戳以1970年1月1日午夜(格林尼治标准时间)起始的秒数表示一个特定的时间点。在Python中,时间戳可以用time模块的time()函数来获取。
import time
timestamp = time.time()
print(timestamp)
输出结果将是当前时间点的时间戳。如果需要将时间戳转化为可读的日期格式,可以使用datetime模块的datetime类。
from datetime import datetime
timestamp = 1617184607.6190903
dt_object = datetime.fromtimestamp(timestamp)
print("date and time:", dt_object)
输出结果将会是可读的日期格式:date and time: 2021-03-31 13:56:47.6190903
。
时间格式表达式
在Python中,有一种叫做时间格式表达式(datetime format string)的字符串格式用来表示不同的时间。格式化字符串可以通过datetime
类的strftime()
方法来生成。下面是一些常用的格式字符串。
代码 | 意义 | 示例 |
---|---|---|
%Y | 四位数年份 | 2021 |
%y | 两位数年份 | 21 |
%m | 数字月份01-12 | 03 |
%d | 01-31的日期 | 31 |
%H | 24小时制小时数 | 13 |
%I | 12小时制小时数 | 01-12 |
%M | 分钟数 | 56 |
%S | 秒数 | 47 |
from datetime import datetime
timestamp = 1617184607.6190903
dt_object = datetime.fromtimestamp(timestamp)
print("Date and time:", dt_object.strftime("%Y-%m-%d %H:%M:%S"))
输出结果将会是可读的日期格式:Date and time: 2021-03-31 13:56:47
。
Pandas中的时间处理
日期和时间数据是数据分析的重要组成部分。在Pandas中,时间处理是由Timestamp和DatetimeIndex两个类实现的。Timestamp类可以用于处理单个时间戳。DatetimeIndex类可以用于处理时间序列数据。
import pandas as pd
date = "2021-03-31"
time = "13:56:47"
datetime = pd.to_datetime(date+' '+time)
print(datetime)
输出结果将会是一个 pandas._libs.tslibs.timestamps.Timestamp 对象:2021-03-31 13:56:47
。
Pandas还提供了不同的时间频率(time frequency)来帮助时间序列数据的处理。例如,pandas.date_range()函数可以用于生成一系列以指定频率出现的日期时间值。
import pandas as pd
datetime_index = pd.date_range(start="2021-03-31", end="2021-04-01", freq="H")
print(datetime_index)
输出结果将会是一个DatatimeIndex对象,包含每小时时间戳的序列。
DatetimeIndex(['2021-03-31 00:00:00', '2021-03-31 01:00:00',
'2021-03-31 02:00:00', '2021-03-31 03:00:00',
'2021-03-31 04:00:00', '2021-03-31 05:00:00',
'2021-03-31 06:00:00', '2021-03-31 07:00:00',
'2021-03-31 08:00:00', '2021-03-31 09:00:00',
'2021-03-31 10:00:00', '2021-03-31 11:00:00',
'2021-03-31 12:00:00', '2021-03-31 13:00:00',
'2021-03-31 14:00:00', '2021-03-31 15:00:00',
'2021-03-31 16:00:00', '2021-03-31 17:00:00',
'2021-03-31 18:00:00', '2021-03-31 19:00:00',
'2021-03-31 20:00:00', '2021-03-31 21:00:00',
'2021-03-31 22:00:00', '2021-03-31 23:00:00',
'2021-04-01 00:00:00'],
dtype='datetime64[ns]', freq='H')
本文讲解了Python中的时间处理的基本知识和Pandas中的时间处理。在实际的数据处理过程中,这些知识会帮助我们更好地处理时间序列数据并更好地进行分析。
示例1
下面的示例演示了如何将Pandas中的时间数据导出为Excel文件。
import pandas as pd
date = "2021-03-31"
time = "13:56:47"
datetime = pd.to_datetime(date + ' ' + time)
df = pd.DataFrame({"date": [datetime]})
df.to_excel("time_example.xlsx", index=False)
将得到一个time_example.xlsx
的Excel文件,其中包含日期和时间信息。
示例2
下面的示例演示了如何使用Pandas在数据框中计算两个日期之间的时间差。
import pandas as pd
start_date = "2021-03-31"
end_date = "2021-04-01"
df = pd.DataFrame({"start_date": [start_date], "end_date": [end_date]})
df['diff_days'] = (pd.to_datetime(df['end_date']) - pd.to_datetime(df['start_date'])).dt.days
print(df)
输出结果将会是一个数据框,其中包含了这两个日期之间的天数差:
start_date | end_date | diff_days | |
---|---|---|---|
0 | 2021-03-31 | 2021-04-01 | 1 |
以上是本文对于Python中的Pandas时间函数time、datetime模块和时间处理的基础知识的讲解和实例演示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解 - Python技术站