Pandas DataFrame.resample()函数

Minahil Noor 2023年1月30日
  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