📅  最后修改于: 2023-12-03 15:36:14.656000             🧑  作者: Mango
Pandas 是 Python 中一个强大的数据处理库。它不仅支持数据处理和数据分析,还提供了许多操作时间数据的方法。这使得 Pandas 成为时间序列数据的理想选择。在本文中,我们将介绍如何使用 Pandas 中的工具来处理时间数据。
在 Pandas 中,我们可以使用 to_datetime()
方法将字符串转换为时间数据。它可以自动将日期转换为日期时间格式,或将时间戳转换为日期时间格式。以下是一个示例:
import pandas as pd
date_string = "2019-11-28"
date = pd.to_datetime(date_string)
print(date)
输出:
2019-11-28 00:00:00
Pandas 支持大多数流行的时间戳格式,包括 Unix 时间戳。以下是一个示例:
import pandas as pd
timestamp = 1574924810
date = pd.to_datetime(timestamp, unit='s')
print(date)
输出:
2019-11-28 10:13:30
在此示例中,我们指定了 unit='s'
,表示我们提供的是 Unix 时间戳,以秒为单位。如果我们提供的是毫秒级别的 Unix 时间戳,我们应该使用 unit='ms'
。
我们还可以使用 Timestamp
对象获取其年、月、日、小时、分钟和秒:
import pandas as pd
timestamp = 1574924810
date = pd.to_datetime(timestamp, unit='s')
print(date.year)
print(date.month)
print(date.day)
print(date.hour)
print(date.minute)
print(date.second)
输出:
2019
11
28
10
13
30
Pandas 中的最基本的时间序列是 DatetimeIndex
类型。 以下是一个示例:
import pandas as pd
dates = [
"2019-01-01",
"2019-01-02",
"2019-01-03",
"2019-01-04",
"2019-01-05",
]
datetime_index = pd.to_datetime(dates)
print(datetime_index)
输出:
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
'2019-01-05'],
dtype='datetime64[ns]', freq=None)
在此示例中,我们使用 pd.to_datetime()
方法将日期列表转换为 DatetimeIndex
时间序列。请注意,这个序列没有任何频率,即 freq=None
。
DatetimeIndex
提供了许多功能,使我们能够对时间数据进行更深入的处理。例如,我们可以使用 pd.date_range()
方法生成一定范围内的日期序列。以下是一个示例,它演示如何生成从 2019 年 1 月 1 日开始的一个月的每一天的日期序列:
import pandas as pd
date_range = pd.date_range(
start="2019-01-01",
end="2019-01-31",
freq="D",
tz="Asia/Shanghai",
)
print(date_range)
输出:
DatetimeIndex(['2019-01-01 00:00:00+08:00', '2019-01-02 00:00:00+08:00',
'2019-01-03 00:00:00+08:00', '2019-01-04 00:00:00+08:00',
'2019-01-05 00:00:00+08:00', '2019-01-06 00:00:00+08:00',
'2019-01-07 00:00:00+08:00', '2019-01-08 00:00:00+08:00',
'2019-01-09 00:00:00+08:00', '2019-01-10 00:00:00+08:00',
'2019-01-11 00:00:00+08:00', '2019-01-12 00:00:00+08:00',
'2019-01-13 00:00:00+08:00', '2019-01-14 00:00:00+08:00',
'2019-01-15 00:00:00+08:00', '2019-01-16 00:00:00+08:00',
'2019-01-17 00:00:00+08:00', '2019-01-18 00:00:00+08:00',
'2019-01-19 00:00:00+08:00', '2019-01-20 00:00:00+08:00',
'2019-01-21 00:00:00+08:00', '2019-01-22 00:00:00+08:00',
'2019-01-23 00:00:00+08:00', '2019-01-24 00:00:00+08:00',
'2019-01-25 00:00:00+08:00', '2019-01-26 00:00:00+08:00',
'2019-01-27 00:00:00+08:00', '2019-01-28 00:00:00+08:00',
'2019-01-29 00:00:00+08:00', '2019-01-30 00:00:00+08:00',
'2019-01-31 00:00:00+08:00'],
dtype='datetime64[ns, Asia/Shanghai]', freq='D')
在此示例中,我们使用了 freq='D'
,这表示我们要在日期之间使用日偏移量。
我们还可以使用 pd.to_timedelta()
方法来创建一个时间偏移量,例如 pd.to_timedelta('1H')
则表示一个小时。我们可以使用 datetime_index + pd.to_timedelta('1H')
来将时间序列中的每个值向前移动一个小时。
在本文中,我们介绍了使用 Pandas 在 Python 中处理时间数据的一些方法。我们看到了如何将字符串和时间戳转换为时间数据,如何创建时间序列,并了解了时间偏移量的概念。希望本文能够帮助你更好地理解 Pandas 中的时间数据处理。