python数据处理——对pandas进行数据变频或插值实例
这里首先要介绍官方文档,对python有了进一步深度的学习的大家们应该会发现,网上不管csdn或者简书上还是什么地方,教程来源基本就是官方文档,所以英语只要还过的去,推荐看官方文档,就算不够好,也可以只看它里面的sample就够了
好了,不说废话,看我的代码:
importpandasaspd importnumpyasnp 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-077 2018-01-088 2018-01-099 2018-01-1010 2018-01-1111 2018-01-1212 2018-01-1313 2018-01-1414 2018-01-1515 2018-01-1616 2018-01-1717 2018-01-1818 2018-01-1919 2018-01-2020 2018-01-2121 2018-01-2222 2018-01-2323 2018-01-2424 2018-01-2525 2018-01-2626 2018-01-2727 2018-01-2828 2018-01-2929 2018-01-3030 2018-01-3131 2018-02-0132 2018-02-0233 2018-02-0334 2018-02-0435 2018-02-0536 2018-02-0637 2018-02-0738 2018-02-0839 2018-02-0940 Freq:D,dtype:int32 2018-01-3131.0 2018-02-28NaN Freq:M,dtype:float64
至于这个asfreq(),用法是这样的:
#to45minutefrequencyandforwardfill In[5]:converted=ts.asfreq('45Min',method='pad') In[6]:converted.head() Out[6]: 2011-01-0100:00:000.469112 2011-01-0100:45:000.469112 2011-01-0101:30:00-0.282863 2011-01-0102:15:00-1.509059 2011-01-0103:00:00-1.135632 Freq:45T,dtype:float64
然后既然有下采样,那就要有插值了,插值的用法如下所示:
这个是线性插值,当然还有向前填充(.bfill())向后填充(.pad())的,可以还看这个官方文档啦,官方文档就是好
>>>s=pd.Series([0,1,np.nan,3]) >>>s.interpolate() 00 11 22 33 dtype:float64
以上这篇python数据处理——对pandas进行数据变频或插值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。