導入 Pandas:
查看 Pandas 版本信息:
Pandas 的數據結構:Pandas 主要有 Series(壹維數組),DataFrame(二維數組),Panel(三維數組),Panel4D(四維數組),PanelND(更多維數組)等數據結構。其中 Series 和 DataFrame 應用的最為廣泛。
Series 是壹維帶標簽的數組,它可以包含任何數據類型。包括整數,字符串,浮點數,Python 對象等。Series 可以通過標簽來定位。
DataFrame 是二維的帶標簽的數據結構。我們可以通過標簽來定位數據。這是 NumPy 所沒有的。
Pandas 中,Series 可以被看作由 1 列數據組成的數據集。
創建 Series 語法:s = pd.Series(data, index=index),可以通過多種方式進行創建,以下介紹了 3 個常用方法。
從列表創建 Series:
從 Ndarray 創建 Series:
從字典創建 Series:
修改 Series 索引:
Series 縱向拼接:
Series 按指定索引刪除元素:
Series 修改指定索引元素:
Series 按指定索引查找元素:
Series 切片操作:
Series 加法運算:
Series 的加法運算是按照索引計算,如果索引不同則填充為 NaN(空值)。
Series 減法運算:
Series的減法運算是按照索引對應計算,如果不同則填充為 NaN(空值)。
Series 乘法運算:
Series 的乘法運算是按照索引對應計算,如果索引不同則填充為 NaN(空值)。
Series 除法運算:
Series 的除法運算是按照索引對應計算,如果索引不同則填充為 NaN(空值)。
Series 求中位數
Series 求和:
Series 求最大值:
Series 求最小值:
與 Sereis 不同,DataFrame 可以存在多列數據。壹般情況下,DataFrame 也更加常用。
通過 NumPy 數組創建 DataFrame:
通過字典數組創建 DataFrame:
查看 DataFrame 的數據類型:
預覽 DataFrame 的前 5 行數據:
查看 DataFrame 的後 3 行數據:
查看 DataFrame 的索引:
查看 DataFrame 的列名:
查看 DataFrame 的數值:
查看 DataFrame 的統計數據:
DataFrame 轉置操作:
對 DataFrame 進行按列排序:
對 DataFrame 數據切片:
對 DataFrame 通過標簽查詢(單列):
對 DataFrame 通過標簽查詢(多列):
對 DataFrame 通過位置查詢:
DataFrame 副本拷貝:
判斷 DataFrame 元素是否為空:
添加列數據:
根據 DataFrame 的下標值進行更改。:
根據 DataFrame 的標簽對數據進行修改:
DataFrame 求平均值操作:
對 DataFrame 中任意列做求和操作:
將字符串轉化為小寫字母:
將字符串轉化為大寫字母:
對缺失值進行填充:
刪除存在缺失值的行:
DataFrame 按指定列對齊:
CSV 文件寫入:
CSV 文件讀取:
Excel 寫入操作:
Excel 讀取操作:
建立壹個以 2018 年每壹天為索引,值為隨機數的 Series:
統計s 中每壹個周三對應值的和:
統計s中每個月值的平均值:
將 Series 中的時間進行轉換(秒轉分鐘):
UTC 世界時間標準:
轉換為上海所在時區:
不同時間表示方式的轉換:
創建多重索引 Series:
構建壹個 letters = ['A', 'B', 'C'] 和 numbers = list(range(10))為索引,值為隨機數的多重索引 Series。
多重索引 Series 查詢:
多重索引 Series 切片:
根據多重索引創建 DataFrame:
創建壹個以 letters = ['A', 'B'] 和 numbers = list(range(6))為索引,值為隨機數據的多重索引 DataFrame。
多重索引設置列名稱:
DataFrame 多重索引分組求和:
DataFrame 行列名稱轉換:
DataFrame 索引轉換:
DataFrame 條件查找:
查找 age 大於 3 的全部信息
** 根據行列索引切片:**
DataFrame 多重條件查詢:
查找 age<3 且為 cat 的全部數據。
DataFrame 按關鍵字查詢:
DataFrame 按標簽及列名查詢。:
DataFrame 多條件排序:
按照 age 降序,visits 升序排列
DataFrame 多值替換:
將 priority 列的 yes 值替換為 True,no 值替換為 False。
DataFrame 分組求和:
使用列表拼接多個 DataFrame:
找出 DataFrame 表中和最小的列:
DataFrame 中每個元素減去每壹行的平均值:
DataFrame 分組,並得到每壹組中最大三個數之和:
當分析龐大的數據時,為了更好的發掘數據特征之間的關系,且不破壞原數據,就可以利用透視表 pivot_table 進行操作。
透視表的創建:
新建表將 A, B, C 列作為索引進行聚合。
透視表按指定行進行聚合:
將該 DataFrame 的 D 列聚合,按照 A,B 列為索引進行聚合,聚合的方式為默認求均值。
透視表聚合方式定義:
上壹題中 D 列聚合時,采用默認求均值的方法,若想使用更多的方式可以在 aggfunc 中實現。
透視表利用額外列進行輔助分割:
D 列按照 A,B 列進行聚合時,若關心 C 列對 D 列的影響,可以加入 columns 值進行分析。
透視表的缺省值處理:
在透視表中由於不同的聚合方式,相應缺少的組合將為缺省值,可以加入 fill_value 對缺省值處理。
在數據的形式上主要包括數量型和性質型,數量型表示著數據可數範圍可變,而性質型表示範圍已經確定不可改變,絕對型數據就是性質型數據的壹種。
絕對型數據定義:
對絕對型數據重命名:
重新排列絕對型數據並補充相應的缺省值:
對絕對型數據進行排序:
對絕對型數據進行分組:
缺失值擬合:
在FilghtNumber中有數值缺失,其中數值為按 10 增長,補充相應的缺省值使得數據完整,並讓數據為 int 類型。
數據列拆分:
其中From_to應該為兩獨立的兩列From和To,將From_to依照_拆分為獨立兩列建立為壹個新表。
字符標準化:
地點的名字都不規範(如:londON應該為London)需要對數據進行標準化處理。
刪除壞數據加入整理好的數據:
將最開始的 From_to 列刪除,加入整理好的 From 和 to 列。
去除多余字符:
如同 airline 列中許多數據有許多其他字符,會對後期的數據分析有較大影響,需要對這類數據進行修正。
格式規範:
在 RecentDelays 中記錄的方式為列表類型,由於其長度不壹,這會為後期數據分析造成很大麻煩。這裏將 RecentDelays 的列表拆開,取出列表中的相同位置元素作為壹列,若為空值即用 NaN 代替。
信息區間劃分:
班級壹部分同學的數學成績表,如下圖所示
但我們更加關心的是該同學是否及格,將該數學成績按照是否>60來進行劃分。
數據去重:
壹個列為A的 DataFrame 數據,如下圖所示
嘗試將 A 列中連續重復的數據清除。
數據歸壹化:
有時候,DataFrame 中不同列之間的數據差距太大,需要對其進行歸壹化處理。
其中,Max-Min 歸壹化是簡單而常見的壹種方式,公式如下:
Series 可視化:
DataFrame 折線圖
DataFrame 散點圖
DataFrame 柱形圖