python数据处理如何对pandas进行数据变频或插值
更新:HHH   时间:2023-1-7


这篇文章主要讲解了python数据处理如何对pandas进行数据变频或插值,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

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

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'三十秒,更多精彩内容请多多查看文档

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(),用法是这样的:

# 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())的,可以还看这个官方文档啦,官方文档就是好

>>> s = pd.Series([0, 1, np.nan, 3])
>>> s.interpolate()
0  0
1  1
2  2
3  3
dtype: float64

看完上述内容,是不是对python数据处理如何对pandas进行数据变频或插值有进一步的了解,如果还想学习更多内容,欢迎关注天达云行业资讯频道。

返回开发技术教程...