📜  Python Pandas-日期功能(1)

📅  最后修改于: 2023-12-03 15:04:07.249000             🧑  作者: Mango

Python Pandas-日期功能

用途简介

Pandas是Python中一个非常强大的数据分析库,其中的日期功能可以让你轻松地处理时间序列数据。日期/时间功能是 Pandas 库的一个强大功能,可以在处理时间序列数据时大展拳脚。

日期数据类型

Pandas中有三种主要的日期/时间数据类型:Timestamp, DatetimeIndex, 和 Period.

Timestamp

Pandas中的一个时间戳数据类型,它可以表示一个精确的日期和时间。常见的创建方法如下:

import pandas as pd

time1 = pd.Timestamp('2021-01-01 00:00:00')
time2 = pd.Timestamp('2021/01/01')
time3 = pd.Timestamp('01-Jan-2021 00:00:00')
DatetimeIndex

表示时间戳的索引数组,可以轻松地进行多个时间戳的时间序列数据操作。

import pandas as pd

dates = ['2021-01-01', '2021-01-02', '2021-01-03']
datetime_index = pd.DatetimeIndex(dates)
Period

Pandas中的时间段数据类型,可以表示一个时间段。常见的创建方法如下:

import pandas as pd

period1 = pd.Period('2021-01')
period2 = pd.Period('2021Q2')
时间序列数据操作

当使用 Pandas 处理时间序列数据时,常常需要进行一些时间序列数据操作,如重新采样、滚动等等。

重新采样

Pandas提供了resample方法用于重新采样时间序列数据:

import pandas as pd

dates = pd.date_range('2021-01-01', '2021-01-10', freq='D')
df = pd.DataFrame(dates, columns=['date'])
df['value'] = range(len(dates))
df.set_index('date', inplace=True)

# 将按小时重新采样的值(需要提供一个聚合函数)
hourly = df.resample('H').sum()
滚动窗口

滚动窗口是指在一个给定的时间窗口内对时间序列数据进行聚合操作。Pandas提供了rolling方法用于实现这一操作:

import pandas as pd

dates = pd.date_range('2021-01-01', '2021-01-10', freq='D')
df = pd.DataFrame(dates, columns=['date'])
df['value'] = range(len(dates))
df.set_index('date', inplace=True)

# 对3天窗口中的数据进行聚合操作(需要提供一个聚合函数)
rolling_average = df.rolling('3D').mean()
时间序列的索引和切片

在 Pandas 中,可以使用 DatetimeIndex 对象来进行时间序列的索引和切片操作。

import pandas as pd

dates = pd.date_range('2021-01-01', '2021-01-10', freq='D')
df = pd.DataFrame(dates, columns=['date'])
df['value'] = range(len(dates))
df.set_index('date', inplace=True)

# 选择20210101到20210105之间的数据
subset = df.loc['2021-01-01':'2021-01-05']
总结

Pandas 的日期/时间功能提供了强大的工具来方便处理时间序列数据,包括时间戳、时间索引、时间段等等。而通过 resamplerolling、以及时间序列的索引和切片操作,可以方便地对时间序列数据进行重采样、聚合、窗口函数等一系列操作,为数据分析带来极大的帮助。