數據分析之Pandas-01Series和DataFrame

01-什麼是Pandas

  • Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。
  • pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。
  • pandas提供了大量能使我們快速便捷地處理數據的函數和方法。
  • 它使Python成爲強大而高效的數據分析環境的重要因素之一。

02-導入

它使Python成爲強大而高效的數據分析環境的重要因素之一。
兩大神器:
- Series 是一個類似數組的數據結構。
- DataFrame 數據框類似於Excel,DataFrame組織數據,處理數據。

import pandas as pd

03-Series

(1)Series創建

由列表或numpy數組創建默認索引爲0到N-1的整數型索引

obj = Series([1,2,3,4])

a = np.array([1,2,3])
obj = Series(a)

(2)Series 索引和切片

(1) 顯式索引:

  • 使用index中的元素作爲索引值
  • 使用.loc[](推薦)
    注意,此時是開區間

    (2) 隱式索引:

  • 使用整數作爲索引值
  • 使用.iloc[](推薦)
    注意,此時是半開區間

(3)Series的基本概念

  • 可以把Series看成一個定長的有序字典可以通過shape,size,index,values等得到series的屬性.
  • 可以通過head(),tail()快速查看Series對象的部分樣式。
  • 當索引沒有對應的值時,可能出現缺失數據顯示NaN(not a number)的情況。
  • 可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數檢測缺失數據。
  • Series對象本身及其索引都有一個name屬性。

(4)Series的運算

  1. 適用於numpy的數組運算也適用於Series.
  2. Series之間的運算在運算中自動對齊不同索引的數據如果索引不對應,則補NaN.

04-Dataframe

DataFrame創建

最常用的方法是傳遞一個字典來創建。DataFrame以字典的鍵作爲每一【列】的名稱,以字典的值(一個數組)作爲每一列。
此外,DataFrame會自動加上每一行的索引(和Series一樣)。
同Series一樣,若傳入的列與字典的鍵不匹配,則相應的值爲NaN。

DataFrame 的索引

分爲對行,列,元素進行索引。

【注意】 直接用中括號時:
索引表示的是列索引
切片表示的是行切片

DataFrame的運算

DataFrame之間的運算:同Series一樣:
在運算中自動對齊不同索引的數據
如果索引不對應,則補NaN

Series與DataFrame之間的運算:
【重要】
使用Python操作符:以行爲單位操作(參數必須是行),對所有行都有效。(類似於numpy中二維數組與一維數組的運算,但可能出現NaN)
使用pandas操作函數:
axis=0:以列爲單位操作(參數必須是列),對所有列都有效。
axis=1:以行爲單位操作(參數必須是行),對所有列都有效。

05-DataFrame處理數據丟失

1.有兩種數據丟失

None是Python自帶的,其類型爲python object。因此,None不能參與到任何計算中
object類型的運算要比int類型的運算慢得多.

np.nan是浮點類型,能參與到計算中。但計算的結果總是NaN

2.pandas中的None與NaN

①pandas中None與np.nan都視作np.nan

②pandas中None與np.nan的操作

  • 判斷函數:isnull,notnull()
  • dropna(): 過濾丟失數據
  • fillna(): 填充丟失數據
  • 對於DataFrame來說,還要選擇填充的軸axis。記住,對於DataFrame來說:
    axis=0:index/行
    axis=1:columns/列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章