詳解pandas資料結構和索引

2021-07-22 02:36:02 字數 2430 閱讀 7568

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的索引可以通過賦值...