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

时间:2021-05-22

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

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

import pandas as pdimport numpy as nprng = 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 72018-01-08 82018-01-09 92018-01-10 102018-01-11 112018-01-12 122018-01-13 132018-01-14 142018-01-15 152018-01-16 162018-01-17 172018-01-18 182018-01-19 192018-01-20 202018-01-21 212018-01-22 222018-01-23 232018-01-24 242018-01-25 252018-01-26 262018-01-27 272018-01-28 282018-01-29 292018-01-30 302018-01-31 312018-02-01 322018-02-02 332018-02-03 342018-02-04 352018-02-05 362018-02-06 372018-02-07 382018-02-08 392018-02-09 40Freq: D, dtype: int322018-01-31 31.02018-02-28 NaNFreq: M, dtype: float64

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

# to 45 minute frequency and forward fillIn [5]: converted = ts.asfreq('45Min', method='pad') In [6]: converted.head()Out[6]: 2011-01-01 00:00:00 0.4691122011-01-01 00:45:00 0.4691122011-01-01 01:30:00 -0.2828632011-01-01 02:15:00 -1.5090592011-01-01 03:00:00 -1.135632Freq: 45T, dtype: float64

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

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

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

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章