📜  更改 pandas 中日期索引的频率 - Python (1)

📅  最后修改于: 2023-12-03 14:55:13.670000             🧑  作者: Mango

更改 pandas 中日期索引的频率 - Python

Pandas是Python中一个功能强大的数据处理库。在Pandas中,日期索引操作非常重要,因为许多数据都是按时间序列组织的。在一些情况下,需要更改原始日期索引的频率,比如将每天的数据变成每周数据或每月数据。本文将演示如何更改Pandas中的日期索引频率。

准备工作

在开始前,我们需要导入Pandas库和一个时间序列的数据集。我们使用了一个包含每日交易数据的数据集。它的索引是datetime类型,包含了所有的交易日期。请确保你已经正确安装了Pandas库。

import pandas as pd
import numpy as np

# 创建一个时间序列的数据集,包含交易日和对应的数据
dates = pd.date_range('20200101', periods=60, freq='D')
data = np.random.randn(60, 4)
df = pd.DataFrame(data, index=dates, columns=list('ABCD'))
df.head()

这将创建一个包含60个交易日期和4个随机数的数据集。数据集的索引是一个datetime类型的时间序列。

更改日期索引频率

为了更改日期索引的频率,我们需要使用resample函数。resample函数将按照新的频率(resampling frequency)重新采样原始的时间序列数据,生成新的时间序列数据。注意,新的频率必须是原始频率的倍数。比如,从每日数据变成每周数据,新的频率就是“W”(代表week)。

# 将每日交易数据按周重新采样,生成新的数据集
weekly_df = df.resample('W').mean()
weekly_df.head()

这样,我们就将每日数据变成了每周数据。上面的代码中,我们使用了resample函数将原始数据集按周重新采样。'W'表示生成的新数据集的频率是每周(week),.mean()表示将每周内的数据取均值。

## 结论

这篇文章演示了如何更改Pandas中的日期索引频率。我们使用了`resample`函数将每日数据变成了每周数据。Pandas库可以大大简化数据处理过程,这在数据分析和机器学习中非常有用。

代码片段:

```python
import pandas as pd
import numpy as np

# 创建一个时间序列的数据集,包含交易日和对应的数据
dates = pd.date_range('20200101', periods=60, freq='D')
data = np.random.randn(60, 4)
df = pd.DataFrame(data, index=dates, columns=list('ABCD'))

# 将每日交易数据按周重新采样,生成新的数据集
weekly_df = df.resample('W').mean()
weekly_df.head()

输出:

                     A         B         C         D
2020-01-05  -0.626186 -0.962938 -0.760347 -0.886029
2020-01-12   0.418670  0.158052 -0.240110  0.343051
2020-01-19  -0.135585 -0.139336 -0.493085 -0.074845
2020-01-26   0.249964  0.323688 -0.231545 -0.305073
2020-02-02  -0.016823 -0.264723  0.179832 -0.173450