2.1.4.3.DataFrames

2.1.4.3.DataFrames

使用library

import numpy as np
import pandas as pd
from numpy.random import randn

初始化亂數

np.random.seed(101)

DataFrame可以接受三個參數:

  • 第一個參數為數值的數列, 型別可以是python數列

  • 第二個參數為label的數列, 型別可以是python數列

  • 第三個參數為label的數列, 型別可以是python數列

df = pd.DataFrame(randn(5,4),['A', 'B', 'C', 'D', 'E'],['W', 'X', 'Y', 'Z'])
  • 也可以直接傳入dictionary

d = {'A':[1,2,np.nan], 'B':[5,np.nan,np.nan], 'C': [1,2,3]}
df.pd.DataFrame(d)

選取DataFrame的Series或subset

  • 選取Column的Series

    • DataFrame中的任一個column就是Series

    • 也可以選取多個column

  • 選取Row的Series

    • 指定label

    • 指定index

  • 選取特定(Row, Column)位置的subset

    • 取出單一值

    • 取出特定範圍的subset

  • 取出前五個值

條件選擇

  • 過濾DataFrame

    • 留下 > 0的值, 將會得到boolean的DataFrame

  • 過濾Column

    • 留下 > 0的row, 將會得到boolean的Series

  • 條件選擇

    • 去掉DataFrame所有column 'W'中小於0的row, 將會得到DataFrame

  • 多重條件選擇

新增/ 刪除DataFrame的column

  • 'new'將會被新增到df中

  • 刪除欄位

    • 由於DataFrame有兩軸座標, 刪除時需指定label是在哪一軸上的

    • inplace參數預設值為Flase, 僅會返回刪除column後的一組DataFrame, 原來的DataFrame並不會改變; 如果設為True則原來的DataFrame會被覆蓋掉

操作索引值

  • Reset索引值

  • 將某一個column設為索引值

Multi-Index

  • 建立Multi-Index的DataFrame

  • 選取資料

  • 為Multi-Index的名稱賦值

  • Cross section

    • 可以同時選取不同row的資料

DataFrame的一些基本操作

  • 取出Series的唯一值 (將會回傳array)

  • 取得Series的長度

  • 統計Dataframe中各Series的數量

  • 取得Dataframe的column

  • 排序Dataframe

  • 檢查Dataframe裡的值是不是null

將function綁定到Dataframe上

  • 或是

Pivot table

  • 指定A, B為索引值時, 取D的值作為value, 並將C設定為列層次階段

Last updated

Was this helpful?