Pandas 使用Python生成时间戳的范围
时间戳是一串字符或加密或编码的数据,用于识别事件的时间和日期,通常表示一天中的时间和日期,通常精确到几分之一秒。时间戳用于维护信息的跟踪。当信息被创建、传输、编辑或删除时,它被赋予一个时间戳。让我们演示一下如何使用python生成时间戳的范围。
时间戳的形式是:
常用格式
YYYY-MM-DD hh:mm:ss
- Y代表年份
- M代表月份
- D代表日
- h代表小时
- m代表分钟
- s代表秒
方法1:使用datetime.timedellta()
导入DateTime和pandas包。我们取一个基准日期,即今天的日期pd.Timestamp.today()。使用datetime.timedelta()方法,以’1’为单位增加到今天的日期。timedelta()需要一个参数day,即我们应该增加基准日期的天数。
# importing packages
import datetime
import pandas as pd
n_days = 10
# today's date in timestamp
base = pd.Timestamp.today()
# calculating timestamps for the next 10 days
timestamp_list = [base + datetime.timedelta(days=x) for x in range(n_days)]
# iterating through timestamp_list
for x in timestamp_list:
print(x)
输出:
方法2:使用pd.date_range()方法
在这种方法中,我们直接使用panda库中的date_range()方法。开始日期是datetime.day(),是今天的日期。Periods是要生成的周期数。我们可以通过使用这个方法直接生成一个时间戳范围。
# importing packages
import pandas as pd
from datetime import datetime
# creating a range of timestamps
timestamp_list = pd.date_range(datetime.today(), periods=10).tolist()
for i in timestamp_list:
print(i)
print(type(i))
输出:
2022-02-20 08:28:35.822503
2022-02-21 08:28:35.822503
2022-02-22 08:28:35.822503
2022-02-23 08:28:35.822503
2022-02-24 08:28:35.822503
2022-02-25 08:28:35.822503
2022-02-26 08:28:35.822503
2022-02-27 08:28:35.822503
2022-02-28 08:28:35.822503
2022-03-01 08:28:35.822503
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
在pd.date_range()方法中,我们可以直接使用start和end参数来指定开始和结束日期,而不是使用’period’参数。这个方法的默认频率是’day’,所以我们得到的是以24小时递增的日期范围()。
# importing packages
import pandas as pd
# range of timestamps
timestamp_range = pd.date_range(start="2020-02-20",
end="2020-03-01")
for i in date_timestamp:
print(i)
print(type(i))
输出:
2020-02-20 00:00:00
2020-02-21 00:00:00
2020-02-22 00:00:00
2020-02-23 00:00:00
2020-02-24 00:00:00
2020-02-25 00:00:00
2020-02-26 00:00:00
2020-02-27 00:00:00
2020-02-28 00:00:00
2020-02-29 00:00:00
2020-03-01 00:00:00
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
方法3:使用pd.period_range()方法
pd.period_range()与pd.date_range()类似,但它返回周期指数,所以我们进一步需要使用to_timestamp()方法将其变为时间戳值。我们使用freq参数,通过使用字符串 “M “将频率设置为月。在上面覆盖的例子中,频率是日。在这个例子中产生了一个以月为单位递增的时间戳范围。
# importing packages
import pandas as pd
import datetime
# range of dates
date_range = pd.period_range(
start=datetime.datetime.today(), periods=10, freq='M')
# timestamp range
timestamp_range = [x.to_timestamp() for x in date_range]
# iterating through timestamp range
for i in timestamp_range:
print(i)
print(type(i))
输出:
2022-02-01 00:00:00
2022-03-01 00:00:00
2022-04-01 00:00:00
2022-05-01 00:00:00
2022-06-01 00:00:00
2022-07-01 00:00:00
2022-08-01 00:00:00
2022-09-01 00:00:00
2022-10-01 00:00:00
2022-11-01 00:00:00
<class 'pandas._libs.tslibs.timestamps.Timestamp'>