pandas資料結構之Dataframe

2021-09-22 22:41:52 字數 2978 閱讀 6100

-- 綜述

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...