python数据处理——对pandas进行数据变频或插值实例

2020-11-04 10:24:13 浏览数 (1)

这里首先要介绍官方文档,对python有了进一步深度的学习的大家们应该会发现,网上不管csdn或者简书上还是什么地方,教程来源基本就是官方文档,所以英语只要还过的去,推荐看官方文档,就算不够好,也可以只看它里面的sample就够了

好了,不说废话,看我的代码:

代码语言:javascript复制
import pandas as pd
import numpy as np
rng = pd.date_range('20180101', periods=40)
ts = pd.Series(np.arange(1,41), index=rng)#这一行和上一行生成了一个index为时间,一共40天的数据
ts_m = ts.resample('M').asfreq()#对数据进行按月重采样,之后再asfreq()
print(ts)
print(ts_m)

tips:因为发生了一些事,所以没有写完这部分先这样吧,后面我再补全

结果在下面,大家看按照月度‘M’采样,会抓取到月末的数据,1月31日和2月28日,嗯,后面的asfreq()是需要的,不然返回的就只是一个resample对象,当然除了M以外,也可以自己进行随意的设置频率,比如说‘3M’三个月,‘5T’五分钟,‘30S’三十秒,更多精彩内容请多多查看文档

代码语言:javascript复制
2018-01-07   7
2018-01-08   8
2018-01-09   9
2018-01-10  10
2018-01-11  11
2018-01-12  12
2018-01-13  13
2018-01-14  14
2018-01-15  15
2018-01-16  16
2018-01-17  17
2018-01-18  18
2018-01-19  19
2018-01-20  20
2018-01-21  21
2018-01-22  22
2018-01-23  23
2018-01-24  24
2018-01-25  25
2018-01-26  26
2018-01-27  27
2018-01-28  28
2018-01-29  29
2018-01-30  30
2018-01-31  31
2018-02-01  32
2018-02-02  33
2018-02-03  34
2018-02-04  35
2018-02-05  36
2018-02-06  37
2018-02-07  38
2018-02-08  39
2018-02-09  40
Freq: D, dtype: int32
2018-01-31  31.0
2018-02-28   NaN
Freq: M, dtype: float64

至于这个asfreq(),用法是这样的:

代码语言:javascript复制
# to 45 minute frequency and forward fill
In [5]: converted = ts.asfreq('45Min', method='pad')
 
In [6]: converted.head()
Out[6]: 
2011-01-01 00:00:00  0.469112
2011-01-01 00:45:00  0.469112
2011-01-01 01:30:00  -0.282863
2011-01-01 02:15:00  -1.509059
2011-01-01 03:00:00  -1.135632
Freq: 45T, dtype: float64

然后既然有下采样,那就要有插值了,插值的用法如下所示:

这个是线性插值,当然还有向前填充(.bfill())向后填充(.pad())的,可以还看这个官方文档啦,官方文档就是好

代码语言:javascript复制
    s = pd.Series([0, 1, np.nan, 3])
    s.interpolate()
0  0
1  1
2  2
3  3
dtype: float64

以上这篇python数据处理——对pandas进行数据变频或插值实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

0 人点赞