📜  Pandas – 使用Python生成时间戳范围

📅  最后修改于: 2022-05-13 01:54:46.543000             🧑  作者: Mango

Pandas – 使用Python生成时间戳范围

时间戳是字符串字符或加密或编码数据,用于标识事件的时间和日期,通常指示一天中的时间和日期,并且通常精确到几分之一秒。时间戳用于维护信息的跟踪。当信息被创建、传输、编辑或删除时,它被赋予了一个时间戳。让我们演示如何使用Python生成时间戳范围。

时间戳的格式为:

方法一:使用 datetime.timedellta()

导入 DateTime 和 pandas 包。我们取一个基准日期,即今天的日期 pd.Timestamp.today()。使用 datetime.timedelta() 方法将 timedelta() 以 '1' 的步长增加到今天的日期。 timedelta() 接受一个参数 day,它是我们应该增加基准日期的天数。下面是为接下来的 10 天生成时间戳的代码。我们根据要求更改范围。

Python3
# 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)


Python3
# 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))


Python3
# 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))


Python3
# 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))


输出:

方法 2:使用 pd.date_range() 方法

在这种方法中,我们直接使用 panda 库中的 date_range() 方法。开始日期是日期时间。 today() 这是今天的日期。 Periods 是要生成的周期数。我们可以使用这种方法直接生成一系列时间戳。

Python3

# 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

我们可以直接使用 start 和 end 参数来指定开始和结束日期,而不是使用 pd.date_range() 方法中的 'periods' 参数。此方法的默认频率为“天”,因此我们将日期的 range() 增加 24 小时。

Python3

# 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

方法 3:使用 pd.period_range() 方法

pd.period_range() 类似于 pd.date_range() 但它返回周期索引,因此我们还需要使用 to_timestamp() 方法将其更改为时间戳值。我们使用 freq 参数通过字符串“M”将频率设置为月。在上述示例中,频率为当天。在此示例中生成了一系列按月递增的时间戳。

Python3

# 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