用 Python 编写一个程序来对给定的时间序列数据进行重新采样并找到最大月末频率

pythonpandasserver side programmingprogramming更新于 2024/6/21 3:56:17

假设您有时间序列和最大月末频率的结果,

DataFrame 为:
 Id time_series
0 1 2020-01-05
1 2 2020-01-12
2 3 2020-01-19
3 4 2020-01-26
4 5 2020-02-02
5 6 2020-02-09
6 7 2020-02-16
7 8 2020-02-23
8 9 2020-03-01
9 10 2020-03-08
最大月末频率:
              Id time_series
time_series
2020-01-31    4 2020-01-26
2020-02-29    8 2020-02-23
2020-03-31    10 2020-03-08

解决方案

为了解决这个问题,我们将按照下面给出的步骤 −

  • 定义一个只有一列的数据框,

d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
  • 在 start=’01/01/2020’、periods = 10 内创建 date_range 函数并分配 freq = ‘W’。它将生成从给定开始日期到下一个每周开始日期的十个日期,并将其存储为 df[‘time_series’]。

df['time_series'] = pd.date_range('01/01/2020', periods=10, freq='W')
  • 应用重采样方法查找最大月末频率,

df.resample('M', on='time_series').max())

示例

让我们看看下面的实现以获得更好的理解−

import pandas as pd
d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
df['time_series'] = pd.date_range('01/01/2020',
                                periods=10,
                                      freq='W')
print("DataFrame 为:\n",df)
print("最大月末频率:")
print(df.resample('M', on='time_series').max())

输出

DataFrame 为:
 Id time_series
0 1 2020-01-05
1 2 2020-01-12
2 3 2020-01-19
3 4 2020-01-26
4 5 2020-02-02
5 6 2020-02-09
6 7 2020-02-16
7 8 2020-02-23
8 9 2020-03-01
9 10 2020-03-08
最大月末频率:
              Id time_series
time_series
2020-01-31    4 2020-01-26
2020-02-29    8 2020-02-23
2020-03-31    10 2020-03-08

相关文章


有用资源