admin 發表於 2023-4-12 09:58:49

pandas基礎介紹

pandas,也有人稱它為Python界的Excel試算表,pandas在某個程度上填補了Python在資料分析及建模上的缺口,它結合NumPy(Numerical Python的簡稱)的特性,以及試算表和關連式資料庫(SQL)的資料操作能力,可以用來對資料進行重構、切割、聚合及選擇子集合等操作。
透過pandas套件的使用,你可以比單純使用Python輕鬆的完成資料分析的工作,並可以讓你快速的發現資料中的資訊以及其中蘊藏的意義。

有時候,使用pandas時也可能會用到其他的Python 程式庫。例如與數值與科學運算有關的SciPy以前面提過的NumPy,與統計分析有關的StatsModels,與機器學習有關的 scikit-learn,與資料視學化有關的 matplotlib 及 seaborn 等等。
嚴格來說,pandas不算是資料科學的工具。
精確的來說,pandas是資料科學分析工具前階段的工具。你可以藉由它敲開資料科學領域的大門。
Pandas Series序列
序列(Series)是一個像是一維陣列資料所組成的物件。我們可以利用python的串列(list)建立一個序列(Series):
import pandas as pd
在pandas裡面,最重要的兩個基本資料結構就屬Series與DataFrame了。要暸解pandas,一定不可以不知道這兩個的概念。
Series,是一個一維標籤陣列物件。
DataFrame則是一個以表格、欄位為主的資料結構,有行與列標籤。接下來我們要簡單介紹這兩個概念。
s = pd.Series()s = pd.Series(list("abcdef"), index=)
49    a
48    b
47    c
0   d
1   e
2   f

>>> s.loc    # value at index label 0
'd'

>>> s.iloc   # value at index location 0
'a'

>>> s.loc# rows at index labels between 0 and 1 (inclusive)
0    d
1    e

>>> s.iloc # rows at index location between 0 and 1 (exclusive)
49    a
df = pd.read_excel('檔案名稱')

[*]loc gets rows (and/or columns) with particular labels.
[*]iloc gets rows (and/or columns) at integer locations.


Pandas DataFrame資料框
pandas的基本結構是DataFrame,DataFrame是一個二維的資料結構,有行有列,有點像excel試算表中的儲存表格。每個欄位可以是不同的資料型態,例如數字、字串、布林等。你也可以把DataFrame想像成是裝了很多Series物件的字典,而且每個Series物件使用相同的index。

建立DataFrame
建立DataFrame的方法有很多種。你可以用串列list建立,也可以用字典dict建立,或者是使用前面提到的Numpy來建立。
載入資料

DataFrame在更多的使用情境上,常常是先讀取外部的檔案後,再透過pandas進行資料的分析處理。pandas提供了簡單的語法讓我們可以快速的載入資料。包括csv、excel、sql、json、 html等,甚至於可以透過剪貼簿讀取資料:


如上表,如果你想要載入excel檔案,可以這樣寫:df = pd.read_excel('檔案名稱')
操作DataFrame

# head()

如果資料太長,我們可以使用head()方法來選取資料開頭前幾個row。預設是五個row。如果你覺得五個row太長,可以試著輸入數字,例如head(3)就是顯示三行的意思。gia, Cambria, "]如果資料太長,我們可以使用head()方法來選取資料開頭前幾個row。預設是五個row。如果你覺得五個row太長,可以試著輸入數字,例如head(3)就是顯示三行的意思。# 調整欄位順序

如果將欄位以序列方法指定的話,DataFrame就會按照指定的順序排好。要達到這個效果,可以使用columns來指定欄位的順序。

# 取回資料

DataFrame可以用類似dict的方法來取回資料。取回資料的資料型態是Series。也可以透過loc屬性取回資料。透過loc屬性取資料時,需要指定位置或名稱。除了使用loc屬性外,也可以使用iloc取回資料。
>>> df = pd.DataFrame(np.arange(25).reshape(5, 5),
                      index=list('abcde'),
                      columns=['x','y','z', 8, 9])
>>> df
    x   y   z   8   9
a   0   1   2   3   4
b   5   6   7   8   9
c1011121314
d1516171819
e2021222324
>>> df.iloc[:df.index.get_loc('c') + 1, :4]
    x   y   z   8
a   0   1   2   3
b   5   6   7   8
c10111213
get_loc() is an index method meaning "get the position of the label in this index". Note that since slicing with iloc is exclusive of its endpoint, we must add 1 to this value if we want row 'c' as well.


# 儲存資料

pandas讓我們可以快速的透過下面語法儲存資料。


頁: [1]
查看完整版本: pandas基礎介紹