-- 綜述
numpy主要用於進行運算
dataframe更切合於業務邏輯
-- dataframe的常用的屬性
屬性 說明
shape dataframe的形狀
values dataframe的值,numpy.ndarray
index 行索引
index.name 行索引的名字
columns 列索引
columns.name 列索引的名字
-- 級聯 concat, 直接連線在一起, 空補nan
級聯引數
axis 軸向 0~1
join 級聯方式 inner outer
join_axes [pd.index([index1,index2....])] 指定索引為連線物件
ignore_index true\false 開啟是否忽略索引
keys 設定級聯後分割槽的名稱
-- 合併 merge, 需要提供參考列
合併引數
on label,[label1,label2...] 設定合併參考列
left_on\right_on label分別設定左右兩個表的合併參考列,一般用於不存在相同列標籤的情況
left_index\right_index true,false 分別設定是否開啟以左\右行索引作為合併參考列
how 指定合併方式 inner outer left right
suffiex [suffiex1,suffiex2] 設定沒有參與合併的相同的列標籤的字尾
合併參考列情況:
行上: 一對一, 一對多, 多對多
列上: 一列, 多列
-- pandas的cut() 為了便於分析,連續資料常常離散化或拆分為「面元」(bin)
pd.cut(x, bins, right=true, labels=none, retbins=false, precision=3, include_lowest=false, duplicates='raise')
引數bins用於指定範圍區間,
引數right用於指定那邊是開區間,閉區間.
引數lable用於面元的名稱
-- series/dataframe運算與ndarray運算的區別
ndarray有廣播,通過重複已有值來計算
series與dataframe沒有廣播,如果對應index沒有值,則記為nan;或者使用add的fill_value來補缺失值
-- 刪除重複元素
drop_duplicates()
dataframe.duplicates()
******************************
dataframe.drop 刪除一行或一列
label 指定刪除的行或列標籤(也可以是列表)
axis 改變刪除的方向
inplace=true
dataframe.drop_duplicates 刪除重複元素
keep 'first','last',保留第乙個或者最後乙個
inplace=true
dataframe.dropna 刪除空值
axis 軸向
how 'any','all',有乙個就刪除或者全部為nan才刪除
inplace=true
-- dataframe的異常值檢測和過濾
1.使用dataframe.describe()檢視資料分布情況
2. 確定過濾條件 bool_list
3. 使用過濾條件篩選符合條件的資料
4. 獲取符合條件的索引標籤
5. 使用drop函式,通過索引標籤把異常值刪除
********************************
# 假設大於3*std的資料即為異常資料
condition = np.abs(data) > 3*data.std()
# 獲取包含空值的行,相當於確認了滿足條件的資料樣本
drop_datas = data[condition.any(axis=1)]
# 獲取符合條件的索引
drop_index = drop_datas.index
# 根據索引刪除符合條件的資料
data.drop(drop_index,inplace=true)
-- dataframe排序
使用.take()函式排序
可以借助np.random.permutation()函式隨機排序
隨機抽樣
當dataframe規模足夠大時,直接使用np.random.randint()函式,就配合take()函式實現隨機抽樣
-- dataframe的資料分類操作: groupby()函式
dataframe.groupby(by=none, axis=0, level=none, as_index=true, sort=true, group_keys=true, squeeze=false, observed=false, **kwargs)
-- 建立多成索引
index = [('california',2000),('california',2010),
('new york',2000),('new york',2010),
('texas',2000),('texas',2010)]
mindex = pd.multiindex.from_tuples(index)
mindex = pd.multiindex.from_product([['california','new york','texas'],[2000,2010]])
pop = dataframe(populations,index=mindex,columns = ['人口'])
popreplace 替換值
rename 熱換索引
map 對映一行或一列,通常是一列
pandas資料結構之Series
series 是一種類似於一維陣列的物件,它由一組資料和一組與之相關的資料標籤 lable 或者說索引 index 組成。現在我們使用series生成乙個最簡單的series物件,因為沒有給series指定索引,所以此時會使用預設索引 從0到n 1 from pandas import series...
Pandas資料結構之Series
import pandas as pd series類 生成series類的方法 1.obj pd.series 4,7,5,3 obj2 pd.series 4,7,5,3 index a b c d print obj2.values,obj2.index print obj2 a print ...
pandas資料結構之DataFrame筆記
dataframe輸出的為表的形式,由於要把輸出的 貼上來比較麻煩,在此就不在貼出相關輸出結果,在jupyter notebook可以順利執行 中有相關解釋用來加深理解方便記憶1 import numpy as np 2import pandas as pd 34 d 67 df pd.datafr...