天天看點

Pandas 資料結構 - DataFrame

DataFrame 是一個表格型的資料結構,它含有一組有序的列,每列可以是不同的值類型(數值、字元串、布爾型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 組成的字典(共同用一個索引)。

Pandas 資料結構 - DataFrame
Pandas 資料結構 - DataFrame

DataFrame 構造方法如下:

參數說明:

<b>data</b>:一組資料(ndarray、series, map, lists, dict 等類型)。

<b>index</b>:索引值,或者可以稱為行标簽。

<b>columns</b>:列标簽,預設為 RangeIndex (0, 1, 2, …, n) 。

<b>dtype</b>:資料類型。

<b>copy</b>:拷貝資料,預設為 False。

Pandas DataFrame 是一個二維的數組結構,類似二維數組。

import pandas as pd

data = [['Google',10],['Runoob',12],['Wiki',13]]

df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)

print(df)

輸出結果如下:

Pandas 資料結構 - DataFrame

以下執行個體使用 ndarrays 建立,ndarray 的長度必須相同, 如果傳遞了 index,則索引的長度應等于數組的長度。如果沒有傳遞索引,則預設情況下,索引将是range(n),其中n是數組長度。

ndarrays 可以參考:NumPy Ndarray 對象

data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}

df = pd.DataFrame(data)

print (df)

Pandas 資料結構 - DataFrame

從以上輸出結果可以知道, DataFrame 資料類型一個表格,包含 rows(行) 和 columns(列):

Pandas 資料結構 - DataFrame

還可以使用字典(key/value),其中字典的 key 為列名:

data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]

輸出結果為:

沒有對應的部分資料為 NaN。

Pandas 可以使用 loc 屬性傳回指定行的資料,如果沒有設定索引,第一行索引為 0,第二行索引為 1,以此類推:

data = {

  "calories": [420, 380, 390],

  "duration": [50, 40, 45]

}

# 資料載入到 DataFrame 對象

# 傳回第一行

print(df.loc[0])

# 傳回第二行

print(df.loc[1])

注意:傳回結果其實就是一個 Pandas Series 資料。

也可以傳回多行資料,使用 [[ ... ]] 格式,... 為各行的索引,以逗号隔開:

# 傳回第一行和第二行

print(df.loc[[0, 1]])

注意:傳回結果其實就是一個 Pandas DataFrame 資料。

我們可以指定索引值,如下執行個體:

df = pd.DataFrame(data, index = ["day1", "day2", "day3"])

Pandas 可以使用 loc 屬性傳回指定索引對應到某一行:

# 指定索引

print(df.loc["day2"])