pandas 6 时间

在数据科学和机器学习领域,Pandas 是 Python 编程语言中最为流行和强大的库之一。无论是数据分析、数据清洗,还是数据可视化,Pandas 都可以胜任。本文将为您介绍 Pandas 6 时间。

1. Pandas6 时间

1.1 时间的表示

在 Pandas 中,时间可以表示为一组时间戳(Timestamp)或一组时间段(Period)。Pandas 采用 NumPy 的 datetime64 数据类型来存储时间数据。datetime64 可以表示以 64 位精度度量的日期和时间,从 1678 年 9 月 21 日至 2262 年 4 月 11 日。

1.2 时间序列

时间序列指的是时间上等间隔的数据点的序列,即等间隔的时间戳序列。Pandas 提供了两种主要的时间序列对象:Series 与 DataFrame。其中,Series 对象表示一维时间序列数据,而 DataFrame 对象表示二维时间序列数据。

2. 时间处理基本操作

2.1 时间的生成

可以使用 to_datetime() 方法将符合日期时间格式的字符串转换为时间戳的格式。例如:

import pandas as pd

time_str = '2022-06-30 12:00:00'

time = pd.to_datetime(time_str)

print(time)

由输出结果可以看到,to_datetime() 方法将字符串转换成了 pandas 中的时间戳对象。此时,我们可以对这个时间戳对象进行各种操作。

2.2 时间的运算

比如,我们可以使用 timedelta() 函数来计算两个时间之间的间隔:

from datetime import timedelta

time1 = pd.to_datetime('2022-06-30 12:00:00')

time2 = pd.to_datetime('2022-06-30 18:00:00')

delta_time = time2 - time1

print(delta_time)

由输出结果可以看到,计算出来的间隔是 6 个小时。

2.3 时间的转换

除了可以将字符串转换成 pandas 中的时间戳对象之外,还可以将时间戳对象转换成指定格式的字符串。可以使用 strftime() 方法将时间戳对象格式化成指定的字符串格式:

time_str = time.strftime('%Y年%m月%d日 %H时%M分%S秒')

print(time_str)

由输出结果可以看到,时间戳对象转换成了指定格式的字符串。

3. Pandas 时间序列的常用操作

3.1 时间数据的索引与截取

由于 Pandas 时间序列对象的一个最重要的特性是对时间数据的索引与截取。

可以使用 set_index() 方法将时间戳序列设为 Index,然后通过 loc 或 iloc 进行截取操作。例如:

import pandas as pd

date_rng = pd.date_range(start='1/1/2022', end='1/10/2022', freq='H')

df = pd.DataFrame(date_rng, columns=['date'])

df['data'] = np.random.randint(0,100,size=(len(date_rng)))

df = df.set_index('date')

print(df)

由输出结果可以看到,date 列已经作为了该 DataFrame 的索引。接下来,我们可以使用 loc 或 iloc 索引的方式来对时间序列进行截取操作:

df.loc['2022-01-01 01:00:00':'2022-01-03 00:00:00']

3.2 时间数据的重采样操作

现实情况下,时间序列往往是不均匀的。这时,我们需要对时间序列进行重采样。可以使用 resample() 方法对时间序列进行重采样。例如:

df.resample('D').mean()

由输出结果可以看到,将时间序列转换成以天为单位的时间序列,并取每天的平均值。

3.3 时间数据的移动平均与指数平滑

常用的平滑方法有移动平均和指数平滑。可以使用 rolling() 方法计算移动平均值,或者使用 ewm() 方法计算指数平滑值。例如:

df.rolling(window=24).mean()

df.ewm(span=24).mean()

由输出结果可以看到,分别计算了 24 小时的移动平均值和指数平滑值。

4. 总结

本文介绍了 Pandas 6 时间的基本操作和常见用法。通过本文的学习,我们可以掌握如何处理时间数据、使用 Pandas 对时间序列进行索引和截取、进行时间序列的重采样及移动平均和指数平滑等操作。这些技巧在实际场景中都有广泛的应用,希望对读者有所启发。

后端开发标签