pandas學習筆記

2021-09-12 07:59:16 字數 4023 閱讀 4231

這是小白的第三篇部落格,今天小白來學習一下python中的pandas資料分析包,這是參考鏈結以及十分鐘了解pandas

pandas介紹

就理解為乙個工具包,包含大量庫和一些標準的資料模型,基於numpy的一種工具,用來解決資料分析而提供了大量處理資料的函式和方法。python資料分析高層次應用庫

series = 索引 + 一維陣列

dataframe = 行列索引 + 二維資料

介紹資料結構關於資料型別、索引和軸標記/對齊的基礎操作適用於所有物件。首先,和小白一起匯入numpy和pandas

import numpy as np

import pandas as pd

要記住的是資料對齊在內部,不會破壞標籤和資料間的鏈結(除非你明確要斷開鏈結)

series:

一維陣列,可以儲存任何資料型別(整數、字串、浮點數、其他)。可以理解為list,但是只能儲存相同的資料型別,用法: s = pd.series(資料,index = 需要傳遞的索引標籤)

time-series以時間為索引的series

dict:

字典,series可以被dict例項化,需要注意的是當資料是dict時,如果沒有傳遞索引,索引將按照dict的插入順序

scalar value標量值:

當資料是乙個標量值時必須有索引,並且它會重複該值來匹配索引的長度

二維**型資料結構,具有可能不同型別的列,其實與r語言中的data.frame類似,就資料框嘛還可以接受不同型別的輸入,還可以理解為多個series構成的。除了資料外還可以選擇傳遞索引(行標籤)和列(列標籤),如果傳遞索引或者列,要確保索引的結果是資料框,如果是一維陣列中的乙個dict加上某個索引則會丟棄與傳遞索引不匹配的所有資料。如果沒有傳遞標籤,它會根據預設規則按輸入資料構建。

通過傳遞元組字典還可以自動建立多索引資料框

三維陣列,同上就理解為多個dataframe構成panel。

pandas中的函式

read_csv()函式

讀取指定的csv檔案,生成乙個包含csv資料的dataframe

info(返回引數,dataframe型別) = pd.read_csv((需要讀取的csv檔案名字,str型別))

類似的函式還有read_excel() read_json read_sql() read_html()

isnul()函式

返回乙個包含資料是否是null的資訊資料

bool(返回判斷結果,true為null,fales為不是) = pd.isnull((需要判斷的資料,dataframe/series型別))

to_datetime()函式

將傳入的資料轉換成日期,date(返回的資料,型別由傳入的引數確定) = pd.to_datetime((可以傳int/float/string/datetime/list/tuple/series/dataframe))

4.dataframe函式【4-14屬dataframe類】

生成dataframe,df = pd.dataframe(data, index = (作為索引的列引數))

dtypes屬性

返回資料結構中每列資料型別,d = df.dtypes

columns屬性

返回資料結構中每列的列名,index_name = df.columns

shape屬性

返回資料結構的行列引數,shp(返回元組型別,行列數) = df.shape

head()、tail()函式

返回csv列表中的前、後num行資料,hdf = df.head(num = )預設情況下是前10行,tdf = df.tail(num = )同上

describe()函式

這個函式畫重點哦,小白覺得必有大用,返回csv列表中的每個列的一些統計描述引數,像數量、均值、標準差、最小值、四分之一位數、中位數、四分之三位數、最大值,ddf = df.describe()

sort_valuns()函式

這個函式有點膩害,返回按引數排序的dataframe,sdf = df.sort_values(by, axis=0, ascending=true, inplace=false, kind=』quicksort』, na_position=』last』)

by: dataframe的行/列名

axis: 0按列排序,1按行排序

ascending:true為公升序排列, false為降序排列

inplace: true修改原dataframe,false則返回新的dataframe

kind: 確定排序演算法,包括

na_position: 確定na資料存在的位置,『first』/『last』

pivot_table()函式

根據index將資料分組,對於values列的值(相同型別)執行aggfunc函式,最後得到dataframe, cdf = df.pivot_table(index = , values = , aggfunc = )

dropna()函式

該函式會根據要求刪除帶有nan值的行和列,ddf = df.dropna(axis=0, how=』any』, thresh=none, subset=none, inplace=false)

axis:搜尋方向,0/『index』為行搜尋,1/『columns』為列搜尋

how: 『any』只要出現na值就刪除該行/列資料,『all』所有值都是na才刪除

thresh: 表示對有效資料數量的最小要求(為2則要求該行/列至少2個有效非na資料存在)

subset: 表示在特定子集中尋找na

inplace: 表示是否在原資料操作,true修改原資料,false返回新資料

reset_index()函式

重置(一般為經過排序後的)dataframe的序號,rdf = df.reset_index(level = none, drop = false, inplace = false, col_level = 0, col_fill = 』』)

level:只從索引中刪除給定的級別。預設情況下刪除所有級別

drop: 是否刪除原始的index列,true刪除,false保留

inplace: 是否在原資料上操作

col_level: 如果列有多個級別,則確定將標籤插入到哪個級別。預設情況下,它插入到第一級

col_fill:如果列有多個級別,則確定其他級別的命名方式。如果沒有,則重複索引名。

series函式【15-屬series類,相同的只改sr的不再記錄】

sr(生成series) = pd.series(data(引數), index = (索引列引數))

tolist()函式

將series或index類的資料變成list形式返回,list =sr.tolist()

value_counts ()函式

計算series中各個values值的數量,csr = sr.value_counts(dropna=true)dropna: 是否計算na的數量,true不計算,false計算

結語

嘛,就先到這裡,下次再通過例項來認識pandas工具,畢竟只是了解用途什麼的有種紙上談兵的感jio~

pandas學習筆記

import numpy as np import pandas as pd obj2 pd.series 4,7,5,3 index d b a c obj2 out 99 d 4 b 7 a 5 c 3 dtype int64 a b pd.series a bout 102 a 1 b 2 c...

pandas學習筆記

1 建立物件,瀏覽資料 建立物件,瀏覽資料 import pandas as pd import numpy as np import matplotlib.pyplot as plt 建立series s pd.series 1,2,4,6,np.nan,9,10 index list abcde...

pandas學習筆記

1.series 類似numpy中的一維陣列,表示為索引 從0開始 和值。建立 import pandas as pd,numpy as np s1 pd.series np.arange 10 s2 pd.series 12 2,5 s3 pd.series 含有的屬性 s1.values s1....