Pandas DataFrame.resample()函数
Minahil Noor
2023年1月30日
-
pandas.DataFrame.resample()
的语法 -
示例代码:
DataFrame.resample()
方法以周为单位重新采样系列数据 -
示例代码:
DataFrame.resample()
方法按月重新采样Series
数据
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 区间的哪一面是封闭的。它有两个选项:right 或 left 。 |
label |
它指定了要给 bin 贴标签的 bin 边缘标签。它有两个选项:right 或 left 。 |
convention |
它有四个选项:start 、end 、s 或 e ,仅对于 PeriodIndex,它使用 start 或 end 。 |
kind |
它指定了产生的索引的种类,有两个选项:时间戳或周期。它有两个选项:timestamp 或 period 。timestamp 将生成的索引转换为 DateTimeIndex,而 period 将其转换为 PeriodIndex。 |
loffset |
它调整重新采样的时间标签。 |
base |
它是一个整数。其默认值为 0。 |
on |
它表示要用来代替索引进行重采样的列的名称。该列必须是类似于日期时间的。 |
level |
它表示用于重新采样的级别名称。级别必须是类似于日期的。 |
origin |
它是调整分组的时间戳。它有三个选项:epoch 、start 或 start_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
函数返回按月重新取样的总和。