用Python編寫程式對給定的時間序列資料進行重取樣,並找到最大月底頻率


假設你擁有時間序列資料以及最大月底頻率的結果,

DataFrame is:
 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
Maximum month end frequency:
              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

解決方案

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個只有一列的DataFrame,

d = {'Id': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(d)
  • 在其中建立`date_range`函式,`start='01/01/2020'`,`periods=10`,並賦值`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 is:\n",df)
print("Maximum month end frequency: ")
print(df.resample('M', on='time_series').max())

輸出

DataFrame is:
 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
Maximum month end frequency:
              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

更新於:2021年2月24日

140 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.