iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 15
0

存取資料

了解到電腦如何存放資料,及如何取得想要的資料之後。接下來,我們要試著用程式化的方法去存取資料。所謂的存取指的是怎麼將資料轉到程式中的變數裡,如此一來,就能透過程式的邏輯進行更多的操作。在Python 程式語言初探 - 操作篇有講過,Python 有一些基本的變數類型,像是數值、字串、以及容器等等。除了這些基本的變數之外,Numpy 與 Pandas 提供了種類似 R 語言 Dataframe 型態的函式庫。

Numpy 與 Pandas

NumPy(Numerical Python)是 Python 的一個擴充程式庫。 它提供了功能強大的 N-dimensional array object 的資料結構,並支援高階大量的維度陣列與矩陣運算。Pandas 主要是基於 NumPy 再增加了 Series 和 DataFrame 兩種資料結構。

Series 是一個一維資料型態,他可以包含其他的一維容器及 NumPy 的 Ndarray。DataFrame 是一種二維的資料型態,有點類似數學中提到的矩陣,或是資料庫中的表格都是二維的。可以透過行(column)或列(Row)分層的索引(index)去操控資料,讓資料分析的彈性半變得完整。

Series

from pandas import Series
# 從 pandas 中引入 Series
obj = Series([4, 7, -5, 3])
# Series 可以帶一般的陣列,預設的 index 從 0 開始
>>> obj = Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
# Series 也可以自訂像是字串的 index
>>> obj = Series({'Ohio': 35000, 'Texas': 71000})
# Series 也可以放像是 dict、 Ndarray 這樣的一維陣列

Pandas

from pandas import DataFrame
# 從 pandas 中引入 DataFrame
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
frame = DataFrame(data)
# Dataframe 是一個二維的陣列,Column index 是 'state', 'year', 'pop', Row index 是從 0 開始的數值(也可以自訂)

如果把 frame 印出來就會長這樣:

>>> frame
   pop   state  year
0  1.5    Ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002

Series 或是 DataFrame 都有很多方式可以操作資料,需要花時間好好熟練。把資料操作玩得熟練,可以幫助分析時更加順手。

取用資料

pandas 的強項在於操作資料,他也支援了各種資料格式的存取。像是 read_csv() 對於 CSV、read_json() 對於 JSON,甚至是 excel 或是 html 都可以透過 pandas 來存取。

import pandas as pd
data = pd.read_csv('file.csv')
data = pd.read_excel('file.xls', 'sheet')
data = pd.read_html('url')

Reference

  1. [python] 使用pandas來撈資料
  2. pandas入门
  3. Pandas学习笔记

上一篇
資料爬蟲(下) - 動態網頁篇
下一篇
資料前處理
系列文
從學生到職場:菜鳥資料科學家的第一個月30

尚未有邦友留言

立即登入留言