Skip to the content.

Pandas

Pandas 是 python 的 library 用來處理資料分析,如果你對 pandas 尚一無所知,你可以把 pandas 想像成 Excel。

在開始前,需要提一些 pandas 的好用資源。

第一步,我們先瞭解 pandas 怎麼讀取 csv。

下面簡單介紹一下 CSV。

CSV (Comma-Separated Values),逗號分隔值

例如

import pandas as pd

data = pd.read_csv('../../files/aapl.csv', parse_dates=False, index_col=0)
data.head()

# 資料的 shape 與 len
print('資料的shape: ', data.shape, ' 資料的 length: ', len(data))

Index and columns

data.index
data.columns

我們可以用每一列的名子去抓出每一列的資料。

# data.High    #也可以用這個方法
# data['High']

# 如果要第 10 行的值
data['High'][10]

每列 column 有他的資料型態 data type

data.dtypes

列與行的切片 (Slicing rows and columns)

data['Close']
data[['Close', 'Open']]
data.loc['2021-05-03':'2021-05-14']
data.iloc[50:55]
# 也可以取出非 null 的值,如果你的資料有缺失值想要略過他,很有幫助。
data.loc[data.Close.notnull()]

還有更細的操作可以參考

我們可以做更多的運算。

data['Close'] - data['Open']
data['New'] = data['Open'] - data['Close']
data.head()

我們也可以做資料的選取。

data['New'] > 0
data[data['New'] > 0]

我們也可以叫 pandas 幫我們做結論。

data.High.mean()
#data.High.unique()
#data.High.value_counts()
#data.High.describe()

分群 (grouping) 與 排序 (sorting)

# 建立一個類別
data['Category'] = data['New'] > 0

data.groupby('Category').High.count()
#data.groupby('Category').mean()
#data['Category'].value_counts()

# 根據哪一列排序
#data.sort_values(by='Low')
# 根據 index 排序
data.sort_index()

更多用法可以參考

Missing Values 缺失值

我們可以轉換值的 資料類型

data.dtypes
data.High.astype('float32')

# dtype('O') 在 pandas 表示 string
data.index.dtype

缺失值 NaN 他是 Not a Number 的縮寫, NaN 是 float64 dtype。

data[pd.isnull(data.High)]
import numpy as np
# 我們自己令一個 NaN

data['High'][0] = np.NaN

data['High'].head

data[pd.isnull(data.High)]
# 我們來補上

data.High.fillna(0).head

# 我們可以補上任何想補上的值