📜  python 重新采样时间序列 - Python (1)

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

Python 重新采样时间序列

当处理时间序列数据时,有时候需要对数据进行重新采样,以调整数据的时间间隔或者聚合数据。Python有许多强大的库可以用于重新采样时间序列数据,包括pandas、numpy、matplotlib等等。

Pandas

pandas是一个Python数据分析库,可以用它重新采样时间序列数据。以下是一个示例:

import pandas as pd

# 创建一个示例时间序列数据
time_index = pd.date_range('2022-01-01', periods=5, freq='H')
data = pd.Series([0, 1, 2, 3, 4], index=time_index)

# 重新采样为每5小时
resampled_data = data.resample('5H').sum()

以上代码将创建一个包含5个小时间隔数据的时间序列,然后通过resample方法将数据重新采样为每5小时,最后通过sum方法将数据聚合。

Numpy

如果需要进行更高级的时间序列重采样操作,可以使用numpy中的interp方法。以下是一个示例:

import numpy as np
import pandas as pd

# 创建一个示例时间序列数据
time_index = pd.date_range('2022-01-01', periods=5, freq='H')
data = pd.Series([0, 1, 2, 3, 4], index=time_index)

# 重新采样为每30分钟
resampled_index = pd.date_range('2022-01-01', periods=10, freq='30T')
resampled_data = np.interp(resampled_index.astype(np.int64), data.index.astype(np.int64), data.values)
resampled_data = pd.Series(resampled_data, index=resampled_index)

以上代码将创建一个包含5个小时间隔数据的时间序列,然后通过interp方法将数据重新采样为每30分钟,astype方法将时间序列数据转换为纳秒级别整数,最后通过Series方法将数值序列和时间序列合并。

Matplotlib

matplotlib是Python的一个绘图库,可以用它重新采样时间序列数据并将其可视化。以下是一个示例:

import pandas as pd
import matplotlib.pyplot as plt

# 创建一个示例时间序列数据
time_index = pd.date_range('2022-01-01', periods=5, freq='H')
data = pd.Series([0, 1, 2, 3, 4], index=time_index)

# 重新采样为每2小时
resampled_data = data.resample('2H').sum()

# 可视化新数据
plt.plot(resampled_data.index, resampled_data.values)
plt.show()

以上代码将创建一个包含5个小时间隔数据的时间序列,然后通过resample方法将数据重新采样为每2小时,最后通过matplotlib绘制数据可视化图表。

重新采样时间序列是处理时间序列数据的重要步骤,在Python中可以使用pandas、numpy、matplotlib等库进行处理,并可以将其可视化展示。