最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas中時間序列的處理大全

 更新時間:2021年06月07日 11:51:19   作者:FOR.GET  
這篇文章主要給大家介紹了關(guān)于Pandas中時間序列處理的相關(guān)資料,pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,需要的朋友可以參考下

一、時間序列數(shù)據(jù)的生成

pd.date_ranges生成時間序列

  • time格式:年月日分隔符號可以是"-","/",空格這三種格式(年月日、日月年、月日年都可以);時分秒只能用":"分隔,順序只能是時分秒。
  • start:起始時間(time)
  • end:終止時間(time)
  • periods:期數(shù)(int),使用時只能出現(xiàn)start或者end,兩者不能同時出現(xiàn)
  • freq:頻率(numY,num年;numM,num月;numD,num日),詳細參數(shù)見下表
頻率別名 描述
B 工作日頻率
C 自定義工作日頻率
D 日歷日頻率
W 每周頻率
M 每月最后一個日歷日
SM 每半個月最后一個日歷日(15日和月末)
BM 每月最后一個工作日
CBM 自定義每月最后一個工作日
MS 每月第一個日歷日
SMS 每半月第一個日歷日(第1和第15)
BMS 每月第一個工作日
CBMS 自定義每月第一個工作日
Q 每季度最后一個月的最后一個日歷日
BQ 每季度最后一個月的最后一個工作日
QS 每季度最后一個月的第一個日歷日
BQS 每季度最后一個月的第一個工作日
A, Y 每年的最后一個日歷日
BA, BY 每年的最后一個工作日
AS, YS 每年的第一個日歷日
BAS, BYS 每年的第一個工作日
BH 工作日按“時”計算頻率
H 每小時頻率
T, min 每分鐘頻率
S 每秒頻率
L, ms 毫秒頻率
U, us 微秒頻率
N 納秒頻率
import pandas as pd
import numpy as np
df = pd.DataFrame( data=np.random.randint(1,20,10),
                  index=pd.date_range(start="20/01/2021",periods=10,freq="M"),) 
print(df)

             0
2021-01-31   1
2021-02-28   6
2021-03-31  12
2021-04-30   5
2021-05-31   7
2021-06-30   4
2021-07-31   9
2021-08-31   7
2021-09-30  18
2021-10-31  10

             0
count  10.00000
mean    7.90000
std     4.72464
min     1.00000
25%     5.25000
50%     7.00000
75%     9.75000
max    18.00000

二、Pandas設(shè)置索引

創(chuàng)建時添加索引

pd.DataFrame(...,index=[],...)

df.set_index使用現(xiàn)有列設(shè)置索引

  • keys:列名,多個列用[name1,name2]
  • drop:設(shè)置升序(True)、降序(False)
  • inplace:替換原變量(True),不替換(False)
df.set_index(["X"],inplace=True)
df.set_index(["X","Y"],inplace=True)

df.reset_index可以還原索引

df.reset_index("X")

三、 時間序列數(shù)據(jù)的截取

df.truncate過濾數(shù)據(jù)

  • before:過濾之前的數(shù)據(jù)(time)
  • after:過濾之后的數(shù)據(jù)(time)
  • axis:列(columns),行(index)
df.truncate(before="2021-5",after="2021-9")

           0
2021-05-31  7
2021-06-30  4
2021-07-31  9
2021-08-31  7

df.loc索引過濾

df.loc["2021-5":]

             0
2021-05-31   7
2021-06-30   4
2021-07-31   9
2021-08-31   7
2021-09-30  18
2021-10-31  10

四、Pandas重復(fù)值處理

4.1 查詢是否有重復(fù)值

duplicated()方法判斷

# 判斷dataframe數(shù)據(jù)整行是否重復(fù)
df.duplicated()
# dataframe數(shù)據(jù)某列是否重復(fù)
df.columns_name.duplicated()
# 判斷dataframe數(shù)據(jù)多列數(shù)據(jù)是否重復(fù)(多列組合查)
df.duplicated(subset = ['n1','n2'])

groupby().count()

df.groupby('columns').count()>1

4.2 去除重復(fù)值

drop_duplicats參數(shù)說明:

  • 參數(shù)subset:用來指定特定的列,默認所有列
  • 參數(shù)keep:first和last表示是選擇最前一項還是最后一項保留,默認first
  • 參數(shù)inplace:是直接在原來數(shù)據(jù)上修改還是保留一個副本,默認為False
df.drop_duplicats(subset=['name1','name2'],keep='last',inplace=True)

按照index索引去重

df.index.duplicated(keep='last')


五、Pandas缺失值處理

5.1 缺失值查詢

df.info查詢各列的信息

df.info()

# res
<class 'pandas.core.frame.DataFrame'>
Int64Index: 10 entries, 19 to 14
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   Y       10 non-null     int32
 1   Z       10 non-null     int32
dtypes: int32(2)
memory usage: 160.0 bytes

df.isnull判斷是否是空值

df.isnull().any() # 篩選出缺失值的列
df.isna().any() # 篩選出缺失值的列

df.empty判斷是否有空值

df.empty

5.2 缺失值填充

ffill 空值取前面的值

df.ffill()

bfill 空值取后面的值

df.bfill()

fillna 指定值填充

df.fillna(1)
df.fillna({'A': 0, 'B': 1, 'C': 2, 'D': 3}) # 指定列填充

interpolate 插值

  • df.interpolate(method=‘linear', axis=0, limit=None, inplace=False, limit_direction=‘forward', limit_area=None, downcast=None, **kwargs)
  • method參數(shù)解釋
    • linear:忽略索引,線性等距插值
    • time:在以天或者更高頻率的數(shù)據(jù)上插入給定的時間間隔長度數(shù)據(jù)
    • index, values:使用索引的實際數(shù)值
    • pad:使用現(xiàn)有值填寫NaN
    • nearest, zero, slinear, quadratic, cubic, spline, barycentric, polynomial:傳遞給scipy.interpolate.interp1d。這些方法使用索引的數(shù)值。polynomial和spline都要求您還指定一個順序(int),例如 ,df.interpolate(method=‘polynomial', order=5)
    • krogh,piecewise_polynomial,spline,pchip,akima:包括類似名稱的SciPy插值方法。
    • from_derivatives:指 scipy.interpolate.BPoly.from_derivatives,它替換了scipy 0.18中的'piecewise_polynomial'插值方法
  • axis : {0或'index',1或'columns',None},默認為None;沿軸進行interpolate。
  • limit: int;要填充的連續(xù)NaN的最大數(shù)量。必須大于0
  • inplace : bool,默認為False;如果可以,更新現(xiàn)有數(shù)據(jù)
  • limit_direction : {‘forward',‘backward',‘both'},默認為'forward';如果指定了限制,則將沿該方向填充連續(xù)的NaN
  • limit_area : {None, ‘inside', ‘outside'}, 默認為None;如果指定了限制,則連續(xù)的NaN將填充此限制。
  • None:無填充限制
  • inside:僅填充有效值包圍的NaN
  • outside: 僅在有效值之外填充NaN
dff.interpolate(method='polynomial',order=2)

刪除缺失值

df.dropna(how='any')

六、pandas統(tǒng)計計算方法

方法 說明
count 非NaN值的數(shù)理
describe 列計算統(tǒng)計匯總
min、max 最小值和最大值
argmin、argmax 最小值和最大值索引(int)
idxmin、idxmax 最小值和最大值索引
quantile 分位數(shù)([0,1],0.25下四分為)
sum 總和
mean 均值
median 0.5分位數(shù),中位數(shù)
mad 根據(jù)均值計算絕對離差
var 方差
std 標(biāo)準(zhǔn)差
df.describe()

七、Pandas數(shù)據(jù)重采樣

重采樣就是基于時間數(shù)據(jù)由一個頻率轉(zhuǎn)換到另一個頻率的方法,分為降采樣和升采樣。

降采樣:高頻率===>低頻率,如頻率日變?yōu)樵拢枰付ńy(tǒng)計函數(shù)如sum

df.resample("M").mean()

升采樣:低頻率===>高頻率,如頻率月變?yōu)槿?,需要進行缺失值填充

df.resample("D").asfreq().fillna(1)

總結(jié)

到此這篇關(guān)于Pandas中時間序列處理的文章就介紹到這了,更多相關(guān)Pandas時間序列處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Selenium 之?dāng)?shù)據(jù)驅(qū)動測試的實現(xiàn)

    Python Selenium 之?dāng)?shù)據(jù)驅(qū)動測試的實現(xiàn)

    這篇文章主要介紹了Python Selenium 之?dāng)?shù)據(jù)驅(qū)動測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用Python來批量檢測并刪除Word文檔中的宏

    使用Python來批量檢測并刪除Word文檔中的宏

    Word文檔作為最常用的電子文檔格式之一,經(jīng)常被用來作為內(nèi)容分享工具,在網(wǎng)絡(luò)中或設(shè)備之間進行傳輸,其安全性也需要受到關(guān)注,宏是可嵌入Word文檔中的一種VBA迷你程序,本文將介紹如何使用Python來批量檢測并刪除Word文檔中的宏,保護計算機的安全,需要的朋友可以參考下
    2024-07-07
  • Python中aiohttp的簡單使用

    Python中aiohttp的簡單使用

    aiohttp是Python中一個強大的異步HTTP客戶端和服務(wù)器框架,它可以幫助開發(fā)者快速構(gòu)建高性能的Web應(yīng)用程序。本文將介紹aiohttp的基本概念、使用方法和常見應(yīng)用場景,幫助讀者更好地了解和使用這個優(yōu)秀的框架
    2023-03-03
  • python中MethodType方法介紹與使用示例

    python中MethodType方法介紹與使用示例

    這篇文章主要給大家介紹了關(guān)于python中MethodType方法的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細,并給出了詳細的注釋供大家理解學(xué)習(xí),需要的朋友可以參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • python使用cartopy在地圖中添加經(jīng)緯線的示例代碼

    python使用cartopy在地圖中添加經(jīng)緯線的示例代碼

    gridlines可以根據(jù)坐標(biāo)系,自動繪制網(wǎng)格線,這對于普通繪圖來說顯然不必單獨拿出來說說,但在地圖中,經(jīng)緯線幾乎是必不可少的,本文將給大家介紹了python使用cartopy在地圖中添加經(jīng)緯線的方法,需要的朋友可以參考下
    2024-01-01
  • Jupyter Notebook如何導(dǎo)入python文件時的問題

    Jupyter Notebook如何導(dǎo)入python文件時的問題

    這篇文章主要介紹了Jupyter Notebook如何導(dǎo)入python文件時的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Python如何根據(jù)字典中的值排序

    Python如何根據(jù)字典中的值排序

    這篇文章主要介紹了Python如何根據(jù)字典中的值排序問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python繪圖之桃花盛開

    Python繪圖之桃花盛開

    這篇文章主要介紹了如何用python繪制桃花樹,幫助大家更好的使用python處理圖片,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 如何使用python爬蟲爬取要登陸的網(wǎng)站

    如何使用python爬蟲爬取要登陸的網(wǎng)站

    這篇文章主要介紹了如何使用python爬蟲爬取要登陸的網(wǎng)站,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python Scrapy框架:通用爬蟲之CrawlSpider用法簡單示例

    Python Scrapy框架:通用爬蟲之CrawlSpider用法簡單示例

    這篇文章主要介紹了Python Scrapy框架:通用爬蟲之CrawlSpider用法,結(jié)合實例形式分析了Scrapy框架中CrawlSpider的基本使用方法,需要的朋友可以參考下
    2020-04-04

最新評論

探索| 汉寿县| 容城县| 陇西县| 家居| 祁连县| 马公市| 股票| 忻州市| 柏乡县| 神木县| 喀喇| 龙州县| 商城县| 福州市| 辽源市| 察哈| 内江市| 锦屏县| 龙南县| 海淀区| 开阳县| 新沂市| 同德县| 武义县| 通城县| 龙江县| 同心县| 和林格尔县| 河池市| 南汇区| 保靖县| 丹凤县| 北流市| 湖州市| 宜君县| 临沭县| 蒲城县| 兴城市| 修水县| 永靖县|