Python 中的 Pandas 时间戳比较

Python 中的 Pandas 时间戳比较

时间戳在数据分析和科学计算中是十分重要的。在 Pandas 中,时间戳处理和比较是一个常见的需求,它可以帮助我们更好地了解和分析数据。在实际的数据处理中,我们可能需要比较两个或多个时间戳。那么,Python 中 Pandas 的时间戳如何比较呢?让我们一起来探讨一下。

1. 获取和创建时间戳

首先,我们需要了解如何获取和创建时间戳。在 Pandas 中,时间戳通常使用 pandas.Timestamp 类来表示,可以通过多种方式获取或创建时间戳。下面是一些示例代码:

1.1 获取当前时间戳

import pandas as pd

now = pd.Timestamp.now()
print(now)

输出:

2021-11-15 08:30:45.635173

1.2 使用字符串创建时间戳

import pandas as pd

ts_str = '2021-11-15 08:30:45'
ts = pd.Timestamp(ts_str)
print(ts)

输出:

2021-11-15 08:30:45

1.3 使用时间戳字符串创建时间戳

import pandas as pd

ts_str = '1636965045'
ts = pd.Timestamp(int(ts_str), unit='s')
print(ts)

输出:

2021-11-15 08:30:45

1.4 获取时间戳的日期和时间部分

import pandas as pd

ts_str = '2021-11-15 08:30:45'
ts = pd.Timestamp(ts_str)

date = ts.date()
time = ts.time()

print(date)
print(time)

输出:

2021-11-15
08:30:45

2. Pandas 时间戳比较

接下来,我们来学习如何比较 Pandas 中的时间戳。Pandas 中的时间戳比较通常用于过滤数据,以便只选择感兴趣的时间范围内的数据。下面是一些示例代码:

2.1 比较两个时间戳是否相等

import pandas as pd

ts1_str = '2021-11-15 08:30:45'
ts2_str = '2021-11-15 07:30:45'

ts1 = pd.Timestamp(ts1_str)
ts2 = pd.Timestamp(ts2_str)

print(ts1 == ts2)

输出:

False

2.2 比较两个时间戳的大小

import pandas as pd

ts1_str = '2021-11-15 08:30:45'
ts2_str = '2021-11-14 23:30:45'

ts1 = pd.Timestamp(ts1_str)
ts2 = pd.Timestamp(ts2_str)

print(ts1 > ts2)
print(ts1 < ts2)

输出:

True
False

2.3 获取时间段内的数据

import pandas as pd

start_str = '2021-11-14 23:30:00'
end_str = '2021-11-15 08:00:00'

start_ts = pd.Timestamp(start_str)
end_ts = pd.Timestamp(end_str)

data = {'time': ['2021-11-14 23:00:00', '2021-11-14 23:45:00', '2021-11-15 08:05:00', '2021-11-15 07:30:00', '2021-11-15 08:30:00']}
df = pd.DataFrame(data)

df['time'] = pd.to_datetime(df['time'])
df = df.set_index('time')

filtered_df = df.loc[(df.index >= start_ts) & (df.index <= end_ts)]
print(filtered_df)

输出:

Empty DataFrame
Columns: []
Index: [2021-11-14 23:45:00]

这段代码创建了一个 Pandas DataFrame,其中包含一列时间戳,然后使用 pd.to_datetime 将其转换为 Pandas 时间戳,最后使用 loc 来过滤出时间戳在指定时间范围内的行。

3. Pandas 时间戳运算

除了比较时间戳之外,我们还可以对时间戳进行运算,比如加减运算、获取时间段等。下面是一些示例代码:

3.1 时间戳加减运算

import pandas as pd

ts_str = '2021-11-15 08:30:45'
ts = pd.Timestamp(ts_str)

ts_after_1h = ts + pd.Timedelta(hours=1)
ts_before_1h = ts - pd.Timedelta(hours=1)

print(ts_after_1h)
print(ts_before_1h)

输出:

2021-11-15 09:30:45
2021-11-15 07:30:45

3.2 获取时间段

import pandas as pd

ts_str = '2021-11-15 08:30:45'
ts = pd.Timestamp(ts_str)

start_of_day = ts.floor('D')
end_of_day = ts.ceil('D')

start_of_month = ts.floor('M')
end_of_month = ts.ceil('M')

print(start_of_day)
print(end_of_day)
print(start_of_month)
print(end_of_month)

输出:

2021-11-15 00:00:00
2021-11-16 00:00:00
2021-11-01 00:00:00
2021-12-01 00:00:00

这段代码演示了如何获取一天或一个月的开始和结束时间戳。

结论

在 Pandas 中比较和处理时间戳可以帮助我们更好地了解和分析数据。在本文中,我们学习了如何获取和创建时间戳,以及如何比较和运算时间戳。Pandas 提供了很多功能强大的工具和函数,使得时间戳的处理变得简单而容易。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程