python數據處理——對pandas進行數據變頻或插值實例
這里首先要介紹官方文檔,對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進行數據變頻或插值實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
