下面是关于Pandas时间序列操作基础的完整攻略:
介绍Pandas的时间序列
Pandas是一个用于数据分析的Python库,主要用于数据整理、清理和处理,也支持灵活的数据可视化处理。Pandas支持时间序列数据的处理,这些时间序列数据是按时间顺序采样的数据点,并且通常每个数据点都与一个时间标签相关联。
创建时间序列
Pandas支持从多种格式中创建时间序列,如Python datetime对象、numpy数据类型datetime64以及字符串。
下面是一个示例,我们首先将Python datetime对象转换为Pandas时间序列:
import pandas as pd
import datetime as dt
# 创建一个Python datetime对象
date = dt.datetime(2021, 7, 1)
# 将Python datetime对象转换为Pandas时间序列
ts = pd.to_datetime(date)
print(ts)
输出如下:
2021-07-01 00:00:00
另一种创建时间序列的方式是使用字符串:
# 创建一个字符串形式的日期
date_str = '2021-07-01'
# 将日期字符串转换为Pandas时间序列
ts = pd.to_datetime(date_str)
print(ts)
输出如下:
2021-07-01 00:00:00
创建时间序列数据
创建时间序列数据的方法有多种,例如通过DataFrame构建、读取文件等。在下面的示例中,我们将使用DataFrame构建方式来创建时间序列数据。
# 创建一个包含时间序列数据的DataFrame
df = pd.DataFrame({'date': [
'2021-07-01',
'2021-07-02',
'2021-07-03',
'2021-07-04',
'2021-07-05'
],
'value': [10, 20, 30, 40, 50]})
# 将日期列转换为时间序列数据
df['date'] = pd.to_datetime(df['date'])
# 将时间序列数据设置为索引
df.set_index('date', inplace=True)
print(df)
输出如下:
value
date
2021-07-01 10
2021-07-02 20
2021-07-03 30
2021-07-04 40
2021-07-05 50
在上面的示例中,我们创建了一个包含“日期”和“值”两列的DataFrame,然后使用“to_datetime”函数将“日期”列转换为时间序列数据。最后,我们将时间序列数据设置为DataFrame的索引。
查询时间序列数据
Pandas支持使用各种方法来查询时间序列数据,如iloc、loc、ix以及Boolean索引。
下面是一个示例,演示如何使用iloc查询特定的时间序列数据点:
# 使用iloc查询特定位置的时间序列数据点
print(df.iloc[2])
输出如下:
value 30
Name: 2021-07-03 00:00:00, dtype: int64
Pandas也支持使用loc查询特定的时间序列数据点,例如:
# 使用loc查询特定日期的时间序列数据点
print(df.loc['2021-07-03'])
输出如下:
value 30
Name: 2021-07-03 00:00:00, dtype: int64
我们还可以使用Boolean索引来查找符合特定条件的时间序列数据点。例如,以下代码演示如何查找值大于30的时间序列数据:
# 使用Boolean索引查询符合条件的时间序列数据
print(df[df['value'] > 30])
输出如下:
value
date
2021-07-04 40
2021-07-05 50
时间序列数据的操作和计算
Pandas支持各种时间序列数据的操作和计算,如加减、平均值、统计等。我们可以使用Pandas提供的各种函数来进行这些操作和计算。
下面是一个示例,演示如何对时间序列数据进行加减运算:
# 对时间序列数据进行加减运算
ts = pd.Timestamp('2021-07-01')
print(ts + pd.Timedelta(days=1))
print(ts - pd.Timedelta(hours=3))
输出如下:
2021-07-02 00:00:00
2021-06-30 21:00:00
Pandas还支持对时间序列数据进行统计计算,例如计算时间序列数据的平均值:
# 计算时间序列数据的平均值
print(df.mean())
输出如下:
value 30.0
dtype: float64
时间序列数据的重采样
Pandas提供了“resample”功能,该功能可以对时间序列数据进行重采样和重新分组。在进行重采样时,我们需要指定重采样的规则(如每日、每周、每月等)和聚合函数(如求平均值、最大值、最小值等)。
以下是一个示例,演示如何对每日时间序列数据进行重采样并计算每周平均值:
# 对每日时间序列数据进行重采样,并计算每周平均值
print(df.resample('W').mean())
输出如下:
value
date
2021-07-04 20
2021-07-11 50
在上面的示例中,我们使用“resample”函数对每日时间序列数据进行重采样,然后使用“mean”函数计算每周平均值。
这就是关于Pandas时间序列操作基础的完整攻略,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas的时间序列操作基础 - Python技术站