Python数据分析pandas之series初识
生活随笔
收集整理的這篇文章主要介紹了
Python数据分析pandas之series初识
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python數據分析pandas之series初識
聲明與簡介
pandas是一個基于python的、快速的、高效、靈活、易用的開源的數據處理、分析包(工具)。。pandas構建在numpy之上,它通過DataFrame(數據框)來操作數據。數據框是一個高效的可以指定行和列標簽的多維數組,通過這種數據類型可以更方便的操作、分析數據。本文主要介紹Series的初始化和訪問。
創建Series
Series是個一維的索引化數組,和定義一維的ndrray類似,我們可以通過”[]”直接定義。
通過ndarray創建Series
#通過numpy的ndarry初始化Series import pandas as pd import numpy as np serie1= pd.Series(np.array([1, 2, 3, 4])) print(serie1)#結果 0 1 1 2 2 3 3 4 dtype: int32#注:這里沒有指定索引,默認的索引是數值型的,從0開始。創建無索引內容Series
#通過np.Series直接創建Series。 import pandas as pd serie1= pd.Series([3,5,8]) print(serie1) print(type(serie1.values),serie1.values) #結果,從結果可以看到Series.values返回的是numpy的ndarray類型。 0 3 1 5 2 8 dtype: int64 <class 'numpy.ndarray'> [3 5 8]那么這里我們不難發現和一維的ndarray相比,Series在索引上是顯式的,即數據里帶有索引信息。當然索引的內容可以不都是數字型的,而ndarray的索引卻都是數字型的。創建有索引內容Series
# 這里創建一個顯式索引定義的Series,演示的內容主要是可以通過指定的索引內容來訪問Series里的數據。另外這里也舉例說明了Series里自動實現元素類型的統一,比如元素類型有int和float時,int都統一轉換為float。 import pandas as pd serie1= pd.Series([3,5,8.23],index=['id','no','seq']) print(serie1) print(type(serie1.values),serie1.values) print("索引號"+'seq'+'\t:'+str(serie1['seq']))通過字典不指定索引創建Series
# 通過字典來創建Series,這里的字典即是key:value鍵值對。 import pandas as pd dic1 ={"id": 10001, "name":"張三", "course":"英文", "score":"90" } serie1= pd.Series(dic1) print(serie1) print("索引號"+'name'+'\t:'+str(serie1['name']))索引不同元素相同方式初始化Series
# 通過指定索引方式創建Series,這里所有的元素都初始化為同樣的值。 import pandas as pd serie1= pd.Series(10,index=['id','score','level']) print(serie1)print("索引號"+'name'+'\t:'+str(serie1['name'])) #結果 id 10 score 10 level 10 dtype: int64 #這種方式指定了索引,所有的索引對應的元素都是相同的值。 #如果想指定數據類型,可以加上參數dtype,比如dtype=np.int32通過字典指定索引創建Series
import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90" }serie1= pd.Series(dic1,index=['course','id','score']) print(serie1) print(serie1['score']) print(dic1) print(serie1.size)#結果 course 英文 id 10001 score 90 dtype: object 90 3 {'course': '英文', 'id': '10001', 'name': '張三', 'score': '90'} #這里不難發現,雖然字典里有4個元素,但因為生成Series時指定的索引僅有3個且和字典的key名一致,所以最終生成Series僅有3個元素。我們可以通過它的size可以看到。通過字典數組創建Series
# 通過字典數組來創建Series,這里的字典即是key:value鍵值對。數組里每個元素都是字典類型。 import pandas as pd dic1 =[{ "course": "英文", "id": "10001", "name":"張三", "score":"90" }, {"course":"語文", "id": "10002", "name":"李四", "score":"80" }] serie1= pd.Series(dic1) print(serie1[1]) print(type(serie1[1])) #結果 {'course': '語文', 'id': '10002', 'name': '李四', 'score': '80'} <class 'dict'> 注:一般我們不通過字典數組初始化Series,因為Series和普通數組的區別在于它有顯式的,且有意義的,而字典數組方式直接初始化,默認的索引和普通ndarray方式一樣,即0、1這種數字型索引。除非每條記錄有特定意義,通過索引標識。訪問Series
通過索引位置索引訪問Series
#通過索引號或者位置索引(從0開始),以”[]”的方式訪問Series。 import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90"}serie1= pd.Series(dic1) print(serie1['id'],serie1['course']) print(serie1[1],serie1[3])#結果 10001 英文 10001 英文通過loc顯示訪問Series
#通過loc方式訪問,方法類似以索引方式訪問。import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90"}serie1= pd.Series(dic1) print(serie1.loc['id'],serie1.loc['score'])#結果 10001 90通過iloc顯示訪問Series
#通過iloc方式訪問,方法類似以位置索引方式訪問。import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90"}serie1= pd.Series(dic1) print(serie1.iloc[1],serie1.iloc[3])#結果 10001 90通過loc對Series切片
#類似ndarry,我們可以通過“[start:end]”(start即下標、end為上標)方式對數組進行切片訪問,這里切片后仍然是Series。 import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90" } serie1= pd.Series(dic1) print(serie1.loc["course":"name"])#結果 course 英文 id 10001 name 張三 dtype: object通過iloc對Series切片
#類似ndarry,我們可以通過“[start:end]”(start即下標、end為上標)方式對數組進行切片訪問,這里切片后仍然是Series。 import pandas as pd dic1 = {"course": "英文","id": "10001","name": "張三","score": "90" } serie1= pd.Series(dic1) print(serie1.iloc[1:3])#結果 id 10001 name 張三 dtype: object總結
以上是生活随笔為你收集整理的Python数据分析pandas之series初识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 200奥迪康Xceed 3耳背机延保多少
- 下一篇: Python数据分析pandas之dat