pandas
資料結構和索引是
入門
pandas
必學的內容,這裡就詳細給大家講解一下,看完本篇文章,相信你對
pandas
資料結構和索引會有乙個清晰的認識。
在pandas中有兩類非常重要的資料結構,即序列series和資料框dataframe。series類似於numpy中的一維陣列,除了通吃一維陣列可用的函式或方法,而且其可通過索引標籤的方式獲取資料,還具有索引的自動對齊功能;dataframe類似於numpy中的二維陣列,同樣可以通用numpy陣列的函式和方法,而且還具有其他靈活應用,後續會介紹到。
序列的建立主要有三種方式:
1)通過一維陣列建立序列
import numpy as np, pandas as pd
arr1 = np.arange(10)
arr1
type(arr1)
s1 = pd.series(arr1) s1
type(s1)
2)通過字典的方式建立序列
dic1 =
dic1
type(dic1)
s2 = pd.series(dic1) s2
type(s2)
3)通過dataframe中的某一行或某一列建立序列
這部分內容我們放在後面講,因為下面就開始將dataframe的建立。
資料框的建立主要有三種方式:
1)通過二維陣列建立資料框
arr2 = np.array(np.arange(12)).reshape(4,3)
arr2
type(arr2)
df1 = pd.dataframe(arr2)
df1type(df1)
2)通過字典的方式建立資料框
以下以兩種字典來建立資料框,乙個是字典列表,乙個是巢狀字典。
dic2 =
dic2
type(dic2)
df2 = pd.dataframe(dic2)
df2type(df2)
dic3 = ,
'two':,
'three':}
dic3
type(dic3)
df3 = pd.dataframe(dic3)
df3type(df3)
3)通過資料框的方式建立資料框
df4 = df3[['one','three']]
df4type(df4)
s3 = df3['one'] s3
type(s3)
細緻的朋友可能會發現乙個現象,不論是序列也好,還是資料框也好,物件的最左邊總有乙個非原始資料物件,這個是什麼呢?不錯,就是我們接下來要介紹的索引。
在我看來,序列或資料框的索引有兩大用處,乙個是通過索引值或索引標籤獲取目標資料,另乙個是通過索引,可以使序列或資料框的計算、操作實現自動化對齊,下面我們就來看看這兩個功能的應用。
s4 = pd.series(np.array([1,1,2,3,5,8])) s4
如果不給序列乙個指定的索引值,則序列自動生成乙個從0開始的自增索引。可以通過index檢視序列的索引:
1. s4.index
現在我們為序列設定乙個自定義的索引值:
s4.index = ['a','b','c','d','e','f'] s4
序列有了索引,就可以通過索引值或索引標籤進行資料的獲取:
s4[3]
s4['e']
s4[[1,3,5]]
s4[['a','b','d','f']]
s4[:4]
s4['c':]
s4['b':'e']
千萬注意:如果通過索引標籤獲取資料的話,末端標籤所對應的值是可以返回的!在一維陣列中,就無法通過索引標籤獲取資料,這也是序列不同於一維陣列的乙個方面。
如果有兩個序列,需要對這兩個序列進行算術運算,這時索引的存在就體現的它的價值了—自動化對齊.
s5 = pd.series(np.array([10,15,20,30,55,80]),
index = ['a','b','c','d','e','f']) s5
s6 = pd.series(np.array([12,11,13,15,14,16]),
index = ['a','c','g','b','d','f']) s6
s5 + s6
s5/s6
由於s5中沒有對應的g索引,s6中沒有對應的e索引,所以資料的運算會產生兩個缺失值nan。注意,這裡的算術結果就實現了兩個序列索引的自動對齊,而非簡單的將兩個序列加總或相除。對於資料框的對齊,不僅僅是行索引的自動對齊,同時也會自動對齊列索引(變數名)
資料框中同樣有索引,而且資料框是二維陣列的推廣,所以其不僅有行索引,而且還存在列索引,關於資料框中的索引相比於序列的應用要強大的多,這部分內容將放在資料查詢中講解。
pandas資料結構
coding utf 8 pandas是numpy的公升級版,功能比numpy更高階 import pandas as pd import numpy as np pandas庫主要定義了兩種資料型別 series dataframe 通過乙個list列表構建乙個series資料 ser obj p...
Pandas資料結構
pandas處理以下三個資料結構 這些資料結構構建在numpy陣列之上,這意味著它們很快。考慮這些資料結構的最好方法是,較高維資料結構是其較低維資料結構的容器。例如,dataframe是series的容器,panel是dataframe的容器。資料結構 維數描述系列1 1d標記均勻陣列,大小不變。資...
pandas資料結構介紹
pandas是基於numpy構建的,它以numpy為中心的應用變得更加簡單。pandas的資料結構介紹 series最重要的乙個功能是 它在算術運算中會自動對齊不同索引的資料。series物件及其索引都有乙個name屬性,該屬性跟pandas其他的關鍵功能關係非常密切 series的索引可以通過賦值...