久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 數(shù)據(jù)分析系列Pandas之Series對象的創(chuàng)建、索引和切片

數(shù)據(jù)分析系列Pandas之Series對象的創(chuàng)建、索引和切片

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-07-29 17:19:08 1659086348

  接下來幾周的文章我們會給大家主要介紹Pandas的使用,Pandas是一個Python 的包,提供快速、靈活和富有表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu),旨在使"關(guān)系或標(biāo)記數(shù)據(jù)的使用既簡單又直觀"。它的目標(biāo)是成為用Python進(jìn)行實際的、真實的數(shù)據(jù)分析的基礎(chǔ)高級模塊。

  **Pandas的數(shù)據(jù)結(jié)構(gòu)**,分兩種:**Series**和**DataFrame**.

  > 1、Series 一維,帶標(biāo)簽數(shù)組 Series的中文意思是序列,系列.

  > 2、DataFrame 二維,Series容器

  本篇文章主要介紹Series的使用。:

  #### Series簡介

  Serial對象本質(zhì)上由兩個數(shù)組構(gòu)成,一個數(shù)組構(gòu)成對象的健(index,索引),一個數(shù)組構(gòu)成對象的值(values).因此Series可以看作是鍵值對。Series是**帶標(biāo)簽**的一維數(shù)組,可存儲整數(shù)、浮點數(shù)、字符串、Python 對象等類型的數(shù)據(jù)。軸標(biāo)簽統(tǒng)稱為**索引,**它由兩部分組成**。**

  - values:一組數(shù)據(jù)(ndarray類型)

  - index:相關(guān)的數(shù)據(jù)索引標(biāo)簽

  如圖:

屏幕快照 2021-05-06 下午3.57.43

  特點:標(biāo)簽(index)與數(shù)據(jù)(value)默認(rèn)對齊,除非特殊情況,一般不會斷開連接,因此通過索引取值非常方便,不需要循環(huán),可以直接通過字典方式,key 獲取value.

  #### Series 創(chuàng)建的幾種方式

  創(chuàng)建Series對象使用Pandas中的Series,

  ```

  Series組成部分:pd.Series(data=None, index=None, dtype=None)

  其中參數(shù):data參數(shù)支持多種數(shù)據(jù)類型,比如列表,字典等,index是一個可選參數(shù)表示索引標(biāo)簽,通過dtype指定數(shù)據(jù)類型

  ```

  Series的創(chuàng)建方式有多種:

  > 1. 標(biāo)量創(chuàng)建

  > 2. 列表創(chuàng)建

  > 3. numpy創(chuàng)建

  > 4. 字典創(chuàng)建

  **標(biāo)量創(chuàng)建:**

  ```

  import numpy as np

  import pandas as pd

  tes = pd.Series(10,index=list('abcde'))

  tes

  ```

屏幕快照 2021-05-06 下午4.12.11

  **列表創(chuàng)建**

  即已知一個list結(jié)構(gòu)的數(shù)據(jù),通過該數(shù)據(jù)創(chuàng)建Series對象。

  ```

  # lst = [11,0,3,7,9,19,4]

  # s = pd.Series(lst) # 默認(rèn)隱式索引

  # s

  lst = [11,0,3,7,9,19,4]

  s = pd.Series(lst,index=["A","B","C","D","E","F","G"]) # 通過index設(shè)置顯式索引

  s

  ```

屏幕快照 2021-05-06 下午4.25.27

  **numpy創(chuàng)建**

  即Series中傳入的是ndarray對象。

  ```

  # data = np.random.randint(0,100,size=(6,))

  # s = pd.Series(data=data)

  # s

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data,index=list('abcdef'))

  s

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午4.42.10

  **字典創(chuàng)建**

  ```

  dic = {"A":1,"B":2,"C":3,"D":2}

  s = pd.Series(dic) # 索引默認(rèn)就是字典的key值

  s

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午4.45.04

  #### Series的索引和切片

  因為Series只有一列,因此一般只對行進(jìn)行操作,索引分為隱式索引和顯示索引,因此不同的方式操作起來也不一樣。

  索引分別為哪些呢?

  > 1. 位置下標(biāo)

  >

  > 2. 標(biāo)簽索引

  > 3. 布爾型索引

  > 4. 切片索引

  位置下標(biāo):當(dāng)使用默認(rèn)值索引的時候,通常使用位置下標(biāo)。類似列表的索引使用方式

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data)

  print(s[0])

  print(s[3])

  print(s[4])

  ```

屏幕快照 2021-05-06 下午5.09.03

  標(biāo)簽索引:類似字典通過key獲取value的方式,通常用在顯示索引的時候。

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data,index=list('abcdef'))

  print(s['a'])

  print(s['f'])

  print(s['c'])

  ```

屏幕快照 2021-05-06 下午5.13.38

  布爾型索引: 通過一個布爾型的數(shù)組獲取Series對象中的值。

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data,index=list('abcdef'))

  print(s)

  s2 = s>50 # 獲取s中大于50的元素,結(jié)果會是一個bool類型的數(shù)組

  print(s2) # 打印s2得到的是一個bool類型的數(shù)組

  print(s[s2]) # 通過s2這個bool數(shù)組獲取s中的元素

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.23.01

  切片索引:即切片,類似列表的切片使用,但是又有所區(qū)別。

  隱式索引的使用:

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data)

  print(s)

  print(s[1:5])

  print(s[:4])

  print(s[2:])

  print(s[::2])

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.30.41

  當(dāng)然也可以使用iloc完成Series對象中元素的獲取,使用方式如下:

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data)

  print(s.iloc[2]) # 指定下標(biāo)

  print(s.iloc[1:3]) # 指定切片范圍

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.40.10

  顯示索引的切片使用

  ```

  data = np.random.randint(0,100,size=(6,))

  s = pd.Series(data=data,index=list('abcdef'))

  print(s)

  print(s['a':'d'])

  print(s['a':])

  print(s[:'f'])

  print(s[::2])

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.43.09

  顯示索引也可以使用loc的方式獲取元素

  ```

  print(s.loc['a':'e'])

  print(s.loc[['a','c','f']])

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.52.37

  總結(jié):

  1. **Series的索引和切片只針對行而言,因為它只有一列**

  2. **loc是對于顯式索引的相關(guān)操作(對于標(biāo)簽的處理),iloc是針對隱式索引的相關(guān)操作(對于整數(shù)的處理)。**

  3. **我們發(fā)現(xiàn)其實s[0:2] 與 s.iloc[0:2]沒有太大差別(顯式索引也是一樣),這并不說明iloc就沒有用,個人覺得它更有意義的是在DataFrame當(dāng)中使用**

  #### Series的基本使用

  **顯示Series部分?jǐn)?shù)據(jù)內(nèi)容**

  **s.head(n)** 該函數(shù)代表的意思是顯示前多少行,可以指定顯示的行數(shù),不寫n默認(rèn)是前5行

  **s.tail(n)** 該函數(shù)代表的意思是顯示后多少行,可以指定顯示的行數(shù),不寫n默認(rèn)是前5行

  **s.unique()** 去除重復(fù)的值

  **s.notnull()** 不為空返回True,為空返回False

  **s.isnull()** 不為空返回False,為空返回True

  ```text

  lst = [1,3,5,6,10,23]

  s1 = pd.Series(lst,index=["A","B","C","D","E","F"])

  print(s1.head()) # 獲取前5行

  print(s1.tail()) # 獲取后5行

  print(s1.unique()) # 去除重復(fù)的值

  s1['D']=None # 修改D索引對應(yīng)的值為None

  print(s1.isnull()) # 判斷是否有空值

  print(s1.notnull()) # 判斷是否有非空值

  ```

  結(jié)果:

屏幕快照 2021-05-06 下午5.59.48

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨特的優(yōu)勢和特點。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問題是什么?

ORM(對象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)以表格的形式存儲,而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運算符?

Go為什么不支持三元運算符Go語言是一種以簡潔和有效性為目標(biāo)的編程語言,因此在設(shè)計過程中,Go的設(shè)計者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36
IT通常說的平臺是什么意思?

在信息技術(shù)(IT)領(lǐng)域,”平臺”這個詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開發(fā)和運行的基礎(chǔ)框架和環(huán)境。以下是對”平臺”這個概念的更深入...詳情>>

2023-10-14 11:55:36
什么是PowerPivot?

什么是PowerPivotPowerPivot,全稱”PowerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過PowerPivot,...詳情>>

2023-10-14 11:25:48