您好,登錄后才能下訂單哦!
這篇文章主要講解了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進行數據變頻或插值有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。