Python資料分析:pandas 類庫及常用方法
定義:pandas是基於NumPy陣列構建的,使資料預處理、清洗、分析工作變得更快更簡單。pandas是專門為處理表格和混雜資料設計的,而NumPy更適合處理統一的數值陣列資料。
import pandas as pd
資料結構:Series | DataFrame。
Series:pd.Series(list,index=[ ]) 類似於一維陣列的得物件,是由一組資料+一列索引組成。可以使用切片,運算等操作,類似於ndarray。
DataFrame:pd.DataFrame(data,columns = [ ],index = [ ]) 是一個表格形的資料型別。常用型別。axis = 1 列 axis = 0 行
資料轉換:
1:pd.DataFrame(Series) 可以把Series結構變為DataFrame。
2:DataFrame.values 可以把DataFrame結構變為 一個numpy 的ndarray。也可以通過索引或者列名獲得一個Series。df['列名'] 或者 df.列名。
常用方法:
1,df.reset_index(drop=True) 重置索引,會建立一個新物件。預設保留原來索引,加上drop=True刪除原來索引。
2,df.set_index() 設定一列索引。
3,df.drop() 刪除指定行值或列值(axis = 1 列 axis = 0 行,預設為行)。
df.drop(index=df[df["價格"].isnull()].index, inplace=True) # 例如:刪除價格為空的所有行
4,del df['列'] 刪除一列值。
5,df.dropna() 刪除指定的行或者列 為空 的值。
6,df.drop_duplicated() 刪除重複值,可指定列,指定保留第一行,或者最後一行。
7,df.loc['行','列'] 通過標籤定位資料,df.iloc[:] 通過索引定位資料。
8,df.sort_values('列',axis=0, ascending=True) 排序。Series不需要引數列,ascending預設True升序。
9,df.describe() 快速列出資料的概要,多個維度的彙總統計。
10,df.info() 索引,資料型別,記憶體資訊等。
11,df.unique() 返回一個Series裡面唯一值組成的陣列。
12,df.sum() 計算一列的和。
13,df.count() 計算非NaN值的總量。
14,df.mean() 計算一列的平均值。
15,df.median() 計算一列的中位數。
16,df.mode() 計算一列的眾數。
17,df.var() 計算一列的方差。
18,df.std() 計算一列的標準差。
19,df.min() 計算一列的最小值。
20,df.max() 計算一列的最大值。
21,df.value_counts() 計算一列中資料出現的頻率。
22,df.groupby() 分組。
23,df.head() 取出資料的前幾行。
24,df.tail() 取出資料的後幾行。
25,read_csv(),read_excel(),read_sql(),read_json(),read_html() 等.... pandas提供的讀取資料方法。
26,to_excel() 寫入excel檔案,可以用pd.ExcelWriter()申明物件儲存多個sheet。
27,pd.contact() ,pd.append() 行資料合併拼接,只在axis = 0上操作。
28,pd.merge() 資料關聯操作,類sql,可以設定關聯方向:left, right,inner,outer。 join()類merge,但是隻能在索引關聯。
29,pd.rename(columns={'原名':'修改名'}, inplace = True) 修改列名。
30,df['列'].fillna(0) 把一列裡面為空的賦值為0.
31,df['列'].astype(int) 轉換一列資料型別。
32,df.agg() 指定列或者行上 一個或者多個操作資料聚合。
...後續陸續加入