- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Pandas中resample方法详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法.
方法的格式是:
1
|
DataFrame.resample(rule, how
=
None
, axis
=
0
, fill_method
=
None
, closed
=
None
, label
=
None
, convention
=
'start'
,kind
=
None
, loffset
=
None
, limit
=
None
, base
=
0
)
|
参数详解是:
。
参数 | 说明 |
---|---|
freq | 表示重采样频率,例如‘M'、‘5min',Second(15) |
how='mean' | 用于产生聚合值的函数名或数组函数,例如‘mean'、‘ohlc'、np.max等,默认是‘mean',其他常用的值由:‘first'、‘last'、‘median'、‘max'、‘min' |
axis=0 | 默认是纵轴,横轴设置axis=1 |
fill_method = None | 升采样时如何插值,比如‘ffill'、‘bfill'等 |
closed = ‘right' | 在降采样时,各时间段的哪一段是闭合的,‘right'或‘left',默认‘right' |
label= ‘right' | 在降采样时,如何设置聚合值的标签,例如,9:30-9:35会被标记成9:30还是9:35,默认9:35 |
loffset = None | 面元标签的时间校正值,比如‘-1s'或Second(-1)用于将聚合标签调早1秒 |
limit=None | 在向前或向后填充时,允许填充的最大时期数 |
kind = None | 聚合到时期(‘period')或时间戳(‘timestamp'),默认聚合到时间序列的索引类型 |
convention = None | 当重采样时期时,将低频率转换到高频率所采用的约定(start或end)。默认‘end' |
。
首先创建一个Series,采样频率为一分钟.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>> index
=
pd.date_range(
'1/1/2000'
, periods
=
9
, freq
=
'T'
)
>>> series
=
pd.Series(
range
(
9
), index
=
index)
>>> series
2000
-
01
-
01
00
:
00
:
00
0
2000
-
01
-
01
00
:
01
:
00
1
2000
-
01
-
01
00
:
02
:
00
2
2000
-
01
-
01
00
:
03
:
00
3
2000
-
01
-
01
00
:
04
:
00
4
2000
-
01
-
01
00
:
05
:
00
5
2000
-
01
-
01
00
:
06
:
00
6
2000
-
01
-
01
00
:
07
:
00
7
2000
-
01
-
01
00
:
08
:
00
8
Freq: T, dtype: int64
|
降低采样频率为三分钟 。
1
2
3
4
5
|
>>> series.resample(
'3T'
).
sum
()
2000
-
01
-
01
00
:
00
:
00
3
2000
-
01
-
01
00
:
03
:
00
12
2000
-
01
-
01
00
:
06
:
00
21
Freq:
3T
, dtype: int64
|
降低采样频率为三分钟,但是每个标签使用right来代替left。请注意,bucket中值的用作标签.
1
2
3
4
5
|
>>> series.resample(
'3T'
, label
=
'right'
).
sum
()
2000
-
01
-
01
00
:
03
:
00
3
2000
-
01
-
01
00
:
06
:
00
12
2000
-
01
-
01
00
:
09
:
00
21
Freq:
3T
, dtype: int64
|
降低采样频率为三分钟,但是关闭right区间.
1
2
3
4
5
6
|
>>> series.resample(
'3T'
, label
=
'right'
, closed
=
'right'
).
sum
()
2000
-
01
-
01
00
:
00
:
00
0
2000
-
01
-
01
00
:
03
:
00
6
2000
-
01
-
01
00
:
06
:
00
15
2000
-
01
-
01
00
:
09
:
00
15
Freq:
3T
, dtype: int64
|
增加采样频率到30秒 。
1
2
3
4
5
6
7
|
>>> series.resample(
'30S'
).asfreq()[
0
:
5
]
#select first 5 rows
2000
-
01
-
01
00
:
00
:
00
0
2000
-
01
-
01
00
:
00
:
30
NaN
2000
-
01
-
01
00
:
01
:
00
1
2000
-
01
-
01
00
:
01
:
30
NaN
2000
-
01
-
01
00
:
02
:
00
2
Freq:
30S
, dtype: float64
|
增加采样频率到30S,使用pad方法填充nan值.
1
2
3
4
5
6
7
|
>>> series.resample(
'30S'
).pad()[
0
:
5
]
2000
-
01
-
01
00
:
00
:
00
0
2000
-
01
-
01
00
:
00
:
30
0
2000
-
01
-
01
00
:
01
:
00
1
2000
-
01
-
01
00
:
01
:
30
1
2000
-
01
-
01
00
:
02
:
00
2
Freq:
30S
, dtype: int64
|
增加采样频率到30S,使用bfill方法填充nan值.
1
2
3
4
5
6
7
|
>>> series.resample(
'30S'
).bfill()[
0
:
5
]
2000
-
01
-
01
00
:
00
:
00
0
2000
-
01
-
01
00
:
00
:
30
1
2000
-
01
-
01
00
:
01
:
00
1
2000
-
01
-
01
00
:
01
:
30
2
2000
-
01
-
01
00
:
02
:
00
2
Freq:
30S
, dtype: int64
|
通过apply运行一个自定义函数 。
1
2
3
4
5
6
7
|
>>>
def
custom_resampler(array_like):
...
return
np.
sum
(array_like)
+
5
>>> series.resample(
'3T'
).
apply
(custom_resampler)
2000
-
01
-
01
00
:
00
:
00
8
2000
-
01
-
01
00
:
03
:
00
17
2000
-
01
-
01
00
:
06
:
00
26
Freq:
3T
, dtype: int64
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/wangshuang1631/article/details/52314944 。
最后此篇关于Pandas中resample方法详解的文章就讲到这里了,如果你想了解更多关于Pandas中resample方法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
pandas.crosstab 和 Pandas 数据透视表似乎都提供了完全相同的功能。有什么不同吗? 最佳答案 pivot_table没有 normalize争论,不幸的是。 在 crosstab
我能找到的最接近的答案似乎太复杂:How I can create an interval column in pandas? 如果我有一个如下所示的 pandas 数据框: +-------+ |
这是我用来将某一行的一列值移动到同一行的另一列的当前代码: #Move 2014/15 column ValB to column ValA df.loc[(df.Survey_year == 201
我有一个以下格式的 Pandas 数据框: df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4,
所以我有这两个数据框,我想得到一个新的数据框,它由两个数据框的行的克罗内克积组成。正确的做法是什么? 举个例子:数据框1 c1 c2 0 10 100 1 11 110 2 12
TL;DR:在 pandas 中,如何绘制条形图以使其 x 轴刻度标签看起来像折线图? 我制作了一个间隔均匀的时间序列(每天一个项目),并且可以像这样很好地绘制它: intensity[350:450
我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1): Time1 Time2
从这个 df 去的正确方法是什么: >>> df=pd.DataFrame({'a':['jeff','bob','jill'], 'b':['bob','jeff','mike']}) >>> df
我想按周从 Pandas 框架中的列中累积计算唯一值。例如,假设我有这样的数据: df = pd.DataFrame({'user_id':[1,1,1,2,2,2],'week':[1,1,2,1,
数据透视表的表示形式看起来不像我在寻找的东西,更具体地说,结果行的顺序。 我不知道如何以正确的方式进行更改。 df示例: test_df = pd.DataFrame({'name':['name_1
我有一个数据框,如下所示。 Category Actual Predicted 1 1 1 1 0
我有一个 df,如下所示。 df: ID open_date limit 1 2020-06-03 100 1 2020-06-23 500
我有一个 df ,其中包含与唯一值关联的各种字符串。对于这些唯一值,我想删除不等于单独列表的行,最后一行除外。 下面使用 Label 中的各种字符串值与 Item 相关联.所以对于每个唯一的 Item
考虑以下具有相同名称的列的数据框(显然,这确实发生了,目前我有一个像这样的数据集!:() >>> df = pd.DataFrame({"a":range(10,15),"b":range(5,10)
我在 Pandas 中有一个 DF,它看起来像: Letters Numbers A 1 A 3 A 2 A 1 B 1 B 2
如何减去两列之间的时间并将其转换为分钟 Date Time Ordered Time Delivered 0 1/11/19 9:25:00 am 10:58:00 am
我试图理解 pandas 中的下/上百分位数计算,但有点困惑。这是它的示例代码和输出。 test = pd.Series([7, 15, 36, 39, 40, 41]) test.describe(
我有一个多索引数据框,如下所示: TQ bought HT Detailed Instru
我需要从包含值“低”,“中”或“高”的数据框列创建直方图。当我尝试执行通常的df.column.hist()时,出现以下错误。 ex3.Severity.value_counts() Out[85]:
我试图根据另一列的长度对一列进行子串,但结果集是 NaN .我究竟做错了什么? import pandas as pd df = pd.DataFrame([['abcdefghi','xyz'],
我是一名优秀的程序员,十分优秀!