設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 244|回復: 0
打印 上一主題 下一主題

pandas基礎介紹

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2023-4-12 09:58:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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):
  1. import pandas as pd
複製代碼

在pandas裡面,最重要的兩個基本資料結構就屬Series與DataFrame了。要暸解pandas,一定不可以不知道這兩個的概念。
Series,是一個一維標籤陣列物件。
DataFrame則是一個以表格、欄位為主的資料結構,有行與列標籤。接下來我們要簡單介紹這兩個概念。
  1. s = pd.Series([1, 2, 3, 4])
複製代碼
s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2])
49    a
48    b
47    c
0     d
1     e
2     f

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

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

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

>>> s.iloc[0:1] # rows at index location between 0 and 1 (exclusive)
49    a
  1. 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檔案,可以這樣寫:
  1. 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
c  10  11  12  13  14
d  15  16  17  18  19
e  20  21  22  23  24
>>> df.iloc[:df.index.get_loc('c') + 1, :4]
    x   y   z   8
a   0   1   2   3
b   5   6   7   8
c  10  11  12  13
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讓我們可以快速的透過下面語法儲存資料。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-5-16 20:32 , Processed in 0.223125 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表