Pandas DataFrame.resample()函式

Minahil Noor 2023年1月30日 2021年2月28日
  1. pandas.DataFrame.resample() 的語法
  2. 示例程式碼:DataFrame.resample() 方法以周為單位重新取樣系列資料
  3. 示例程式碼:DataFrame.resample() 方法按月重新取樣 Series 資料
Pandas DataFrame.resample()函式

Python Pandas DataFrame.resample() 函式對時間序列資料進行重新取樣。

pandas.DataFrame.resample() 的語法

DataFrame.resample(rule,
                   axis=0,
                   closed=None,
                   label=None,
                   convention='start',
                   kind=None,
                   loffset=None,
                   base=None,
                   on=None,
                   level=None,
                   origin='start_day',
                   offset=None)

引數

rule 它是代表目標轉換的偏移字串或物件。
axis 它指定使用哪一個軸進行向上或向下取樣。對於 Series,預設為 0,即沿行。
closed 它指定了 bin 區間的哪一面是封閉的。它有兩個選項:rightleft
label 它指定了要給 bin 貼標籤的 bin 邊緣標籤。它有兩個選項:rightleft
convention 它有四個選項:startendse,僅對於 PeriodIndex,它使用 startend
kind 它指定了產生的索引的種類,有兩個選項:時間戳或週期。它有兩個選項:timestampperiodtimestamp 將生成的索引轉換為 DateTimeIndex,而 period 將其轉換為 PeriodIndex。
loffset 它調整重新取樣的時間標籤。
base 它是一個整數。其預設值為 0。
on 它表示要用來代替索引進行重取樣的列的名稱。該列必須是類似於日期時間的。
level 它表示用於重新取樣的級別名稱。級別必須是類似於日期的。
origin 它是調整分組的時間戳。它有三個選項:epochstartstart_day
offset 它代表了加在 origin 引數上的偏移量 timedelta

返回值

它返回重新取樣的物件。

示例程式碼:DataFrame.resample() 方法以周為單位重新取樣系列資料

import pandas as pd

index = pd.date_range('1/1/2021', periods=30, freq='D')
series = pd.Series(range(30), index=index)
print("The Original Series is: \n")
print(series)

series1= series.resample('W').sum()
print("The Resampled Data is: \n")
print(series1)

輸出:

The Original Series is: 

2021-01-01     0
2021-01-02     1
2021-01-03     2
2021-01-04     3
2021-01-05     4
2021-01-06     5
2021-01-07     6
2021-01-08     7
2021-01-09     8
2021-01-10     9
2021-01-11    10
2021-01-12    11
2021-01-13    12
2021-01-14    13
2021-01-15    14
2021-01-16    15
2021-01-17    16
2021-01-18    17
2021-01-19    18
2021-01-20    19
2021-01-21    20
2021-01-22    21
2021-01-23    22
2021-01-24    23
2021-01-25    24
2021-01-26    25
2021-01-27    26
2021-01-28    27
2021-01-29    28
2021-01-30    29
Freq: D, dtype: int64
The Resampled Data is: 

2021-01-03      3
2021-01-10     42
2021-01-17     91
2021-01-24    140
2021-01-31    159
Freq: W-SUN, dtype: int64

函式返回了以周為單位的重新取樣的總和。

示例程式碼:DataFrame.resample() 方法按月重新取樣 Series 資料

import pandas as pd

index = pd.date_range('1/1/2021', periods=30, freq='D')
series = pd.Series(range(30), index=index)
print("The Original Series is: \n")
print(series)

series1= series.resample('M').sum()
print("The Resampled Data is: \n")
print(series1)

輸出:

The Original Series is: 

2021-01-01     0
2021-01-02     1
2021-01-03     2
2021-01-04     3
2021-01-05     4
2021-01-06     5
2021-01-07     6
2021-01-08     7
2021-01-09     8
2021-01-10     9
2021-01-11    10
2021-01-12    11
2021-01-13    12
2021-01-14    13
2021-01-15    14
2021-01-16    15
2021-01-17    16
2021-01-18    17
2021-01-19    18
2021-01-20    19
2021-01-21    20
2021-01-22    21
2021-01-23    22
2021-01-24    23
2021-01-25    24
2021-01-26    25
2021-01-27    26
2021-01-28    27
2021-01-29    28
2021-01-30    29
Freq: D, dtype: int64
The Resampled Data is: 

2021-01-31    435
Freq: M, dtype: int64

函式返回按月重新取樣的總和。

相關文章 - Pandas DataFrame