Python資料分析入門筆記

2021-09-24 11:19:47 字數 3432 閱讀 9895

資料基本處理

資料缺失值處理有好幾種對應的函式,接下來介紹三種我學習的函式dropna,fillna,replace.這三種函式功能上的區別,以及不同的適用場景.這三種函式都在pandas裡,所以寫**時首先要匯入pandas

dropna()函式是用來濾除缺失值的,預設的情況下是清除所有的含有nan資料的行.

例1.

nacis2016_null.

dropna

()#所有含有nan的資料的行都會被濾除

nacis2016_null.

dropna

(how=

'all'

)#所有的列都是nan的資料的行會被刪除

引數thresh.

thresh=n 保留至少含有n個非空資料.

例2.

nacis2016_null.

dropna

(thresh=10)

.shape #保留有10個非空資料的行.

收集的資料有些列幾乎就沒有有效資料,這是就可以使axis=1濾除某一列.

例3.

nacis2016_null[

'jan. 2016'

]=np.nan

nacis2016_null.

dropna

(axis=

1,how=

"all"

) #就濾除例jan.

2016這一列

fillna能自動填充nan資料,並返回填充後的結果.

例4.

df = pd.

dataframe

(print

(df)

df.fillna(0

, inplace = true) #inplace = true,就將原**修改了

print

(df)

fillna()函式有inplace引數,將inplace設為true就將原dataframe中的資料更改了,不然預設為false,只改了顯示出來的**,原dataframe中的資料並沒有改變,再次列印還是會有空資料.

replace可以替換缺失值,但replace除了可以替換缺失值之外還有其他的拓展功能,可以改變已有的值或者改變某一列的值.

df = pd.

dataframe()

print

('################before replace###########'

)print

(df)

print

('################after replace###########'

)print

(df.

replace

(np.nan,0)

)################before replace###########

id item1 item2

01.0

11.0

12.0

2 nan

2 nan 3

3.0################after replace###########

id item1 item2

01.0

11.0

12.0

20.0

20.0

33.0

但是replace不能替換原表的內容.

總結:dropna是用來濾除缺失值的,但濾除的程度可以控制,不改變原表內容;fillna可以自動填充缺失資料,可以改原表內容;replace是替換缺失值,也可以替換已有的值,不改變原表內容.

接下來介紹資料基本處理中常用的幾種資料預處理方法.

mean函式預設求每一列的的均值,如想求每行的均值則可設定axis(1)來求每一行的均值,並且預設跳過缺失值.

print

(df)

print

(df.

mean()

)print

(df.

mean(1

))id item1 item2

01.0

11.0

12.0

2 nan

2 nan 3

3.0id 1.5

item1 2.0

item2 2.0

dtype: float64

01.0

12.0

23.0

dtype: float64

可以設定skipna = false,這樣就不會跳過缺失值,但是這樣會讓計算報錯,所以可以先把缺失值替換成0,再計算,不過這樣意義不大.

計算樣本的標準差,用法與mean函式基本一致.在numpy和pandas中都有這個函式,但是功能有一定的差異.

用法與mean和std相同,預設是忽略缺失值的.

sort函式的用法:

dataframe.

sort_values

(by,axis=

0,ascending=true, inplace=false,kind=

'quicksort'

,na_position=

'last'

)[source]

老版的pandas裡的位sort新版的為sort_values.

.by為要進行的列的名稱;

.ascending為排序的方式,true為公升序,false為降序,預設為true的;

.axis為排序的軸列排序axis為0;

.inplace預設為false,表示對資料進行排序,不建立新例項;

.kind可選擇排序的方式,如快速排序;

no_position對nan值的處理方式,預設為last,就是將缺失值放在排序的最後,也有first表示將缺失值放在最前;

groupby函式用來對資料進行聚集,分組運算.

它的語法結構為:

dataframe[

'運算物件'].

groupby

(dataframe[

'分組物件'

])

計算每個銷售員的總銷售額:

(sales[

'quantity'

]*sales[

'price'])

.groupby

(sales[

'account'])

.sum()

account

146832

130000

714466

40000

714467

10000

737550

35000

dtype: int64

Python資料分析入門

原文 最近,analysis with programming加入了planet python。作為該 的首批特約部落格,我這裡來分享一下如何通過python來開始資料分析。具體內容如下 資料匯入 資料變換 資料統計描述 假設檢驗 視覺化 建立自定義函式。這是很關鍵的一步,為了後續的分析我們首先需要...

Python資料分析筆記

數值型字元型 資料結構 取值 true 真 false 假 運算規則 與 一假為假,兩真為真 true true true false false false 或 兩假為假,一真為真 true true true false false falsenot 非 非真為假,非假為真 not true n...

python資料分析 numpy入門

import numpy as np import random 建立陣列 t1 np.array random.randint 2,9 for i in range 10 t2 np.arange 1,6 t3 np.array range 1,10,2 print t1 t1 print t2 ...