日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用python进行数据分析论文_利用Python进行数据分析之pandas的高级用法

發布時間:2023/12/20 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用python进行数据分析论文_利用Python进行数据分析之pandas的高级用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pandas

前面我們學習了pandas兩種基本的數據結構Series和DataFrame以及基本功能,這節我們學習一下其他的略高級用法。

匯總和計算描述統計

df.sum(axis=1)

#求和,全為NaN才會NaN

df.mean(axis=1,skipna=False)

#平均數,有NaN結果就為NaN

這種約簡方法的選項:

選項

說明

axis

約簡的軸。DataFrame的行用0,列用1

skipna

排除缺失值,默認值為True

level

如果軸是層次化索引的(即Multilndex),則根據level分組約簡

匯總統計idxmin和idxmax:

df

out:

one two

a 1.40 NaN

b 7.10 -4.5

c NaN NaN

d 0.75 -1.3

df.idxmax()

out:

one b

two d

df.cumsum()

out:

one two

a 1.40 NaN

b 8.50 -4.5

c NaN NaN

d 9.25 -5.8

還有descripe 它是多個匯總統計:

df.describe()

out:

one two

count 3.000000 2.000000

mean 3.083333 -2.900000

std 3.493685 2.262742

min 0.750000 -4.500000

25% 1.075000 -3.700000

50% 1.400000 -2.900000

75% 4.250000 -2.100000

max 7.100000 -1.300000

obj = Series(['a', 'a', 'b', 'c']* 4)

obj.describe()

out:

count 16

unique 3

top a

freq 8

分別說明如下:

方法

說明

count

非NA值的數量

describe

針對Series或各DataFrame列計算匯總統計

min, max

計算最小值和最大值

argmin, argmax

計算能夠獲取到最小值和最大值的索引位置(整數)

idxmin, idxmax

計算能夠獲取到最小值和最大值的索引值

quantile

計算樣本的分位數(0到1)

sum

值的總和

mean

值的平均數

median

值的算術中位數(50%分位數)

mad

根據平均值計算平均絕對離差

var

樣本值的方差

std

樣本值的標準差

skew

樣本值的偏度(三階矩)

kurt

樣本值的峰度(四階矩)

cumsum

樣本值的累計和

cummin. cummax

樣本值的累計最大值和累計最小值

cumprod

樣本值的累計積

diff

計算一階差分《對時間序列很有用)

pct_change

計算百分數變化

相關系數與協方差

corr()計算相關系數

cov()計算協方差

DataFrame的corrwith方法可以計算其列或行與另外一個Series或者DataFrame之間的相關系數

唯一值、值計數以及成員資格

obj=Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])

uniques = obj.unique()

uniques

out:

array([c, a, d, b], dtype=object)

計算各值出現的頻率:

obj.value_counts()

同時,它還是一個頂級的pandas方法,所以它還能這樣寫pd.value_count(obj.values)

默認降序排列,如果不要可以添加sort=False

isin用來判斷是否存在,返回bool

obj.isin([‘b’,’c’])

方法

說明

isin

計算一個表示“Series各值是否包含于傳入的值序列中”的布爾型數組

unique

計算Series中的唯一值數組,按發現的順序返回

value_counts

返回一個Series,其索引為唯一值,其值為頻率,按計數值降序排列

處理缺失數據

默認用NaN表示

dropna

fillna

isnull

notnull

濾除缺失數據

dropna默認丟棄任何含有缺失值的行,

加入how=’all’只丟棄全為NA的行。

(丟棄列用axis=1)

thresh=3 保留值(不為NaN)在3個或以上的。

填充缺失數據

這個其實之前也介紹過一點。

主要使用的fillna,它的參數有:

參數

說明

value

用于填充缺失值的標a值或字典對象

method

插值方式。如果函數調用時未指定其他參數的話,默認為”ffill”

axis

待填充的軸,默認axis=0

inplace

修改調用者對象而不產生副本

limit

(對于前向和后向填充)可以連續填充的最大數量

層次化索引 重排分級順序

我的理解感覺就是強行把三維放在二維上,這個篇幅問題不詳細說了,可以自行百度下,應該還是很好理解的。

重排分級順序則是對軸上各級別的順序的重新調整。

根據級別匯總統計

level選項來指定求和的級別。例如:

frame.sum(level='key2')

#則key2相同的進行求和

frame.sum(level='color', axis=1)

#指明列上的級別時,同時要指明axis=1

使用DataFrame的列

這個是什么意思呢,就是把DataFrame的一列或者多列當作行索引使用,如下:

frame =DataFrame({'a':range(7),'b':range(7,0,-1),

'c':['one','one','one','two','two','two','two'],'d': [0, 1, 2, 0,1,2,3]})

frame

out:

a b c d

0 0 7 one 0

1 1 6 one 1

2 2 5 one 2

3 3 4 two 0

4 4 3 two 1

5 5 2 two 2

6 6 1 two 3

frame2 = frame.set_index(['c','d'])

frame2

out:

a b

c d

one 0 0 7

1 1 6

2 2 5

two 0 3 4

1 4 3

2 5 2

3 6 1

默認情況下那些列會被移除,但是可以通過添加參數drop=False保留下來。

移回來使用reset_index()與上面相反。

其他pandas的話題

整數索引

ser=Series(np.arange(3.))

ser[-1]這種情況下會報錯,原因是它并不能分別你是要最后一個 還是索引是-1。

但是當非整數索引時它能知道是最后一個元素。

面板數據

panel數據結構作為三維版的DataFrame,有三個緯度供ix標簽選取。暫時僅供了解。

總結

pandas的初步入門到這就結束了。總的來說其實就是這兩種常用的數據結構Series,DataFrame的常用方法,尤其是DataFrame。感覺看完了也沒有什么整體的概念,之后多使用的時候再來翻翻記錄熟悉。

總結

以上是生活随笔為你收集整理的利用python进行数据分析论文_利用Python进行数据分析之pandas的高级用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。