久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

 昵稱(chēng)QAb6ICvc 2017-05-11

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

藍(lán)鯨的網(wǎng)站分析筆記 2017-04-21 14:02

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Excel是數(shù)據(jù)分析中最常用的工具,本篇文章通過(guò)python與excel的功能對(duì)比介紹如何使用python通過(guò)函數(shù)式編程完成excel中的數(shù)據(jù)處理及分析工作,。在Python中pandas庫(kù)用于數(shù)據(jù)處理,,我們從1787頁(yè)的pandas官網(wǎng)文檔中總結(jié)出最常用的36個(gè)函數(shù),通過(guò)這些函數(shù)介紹如何通過(guò)python完成數(shù)據(jù)生成和導(dǎo)入,,數(shù)據(jù)清洗,,預(yù)處理,以及最常見(jiàn)的數(shù)據(jù)分類(lèi),,數(shù)據(jù)篩選,,分類(lèi)匯總,透視等最常見(jiàn)的操作,。

這個(gè)系列文章內(nèi)容共分為9個(gè)部分,。已由人民郵電出版社出版,感興趣的朋友可以在異步社區(qū)獲取完整版,。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

這是第三篇,,介紹第7-9部分的內(nèi)容,數(shù)據(jù)匯總,,數(shù)據(jù)統(tǒng)計(jì),,和數(shù)據(jù)輸出。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

7,,數(shù)據(jù)匯總

第七部分是對(duì)數(shù)據(jù)進(jìn)行分類(lèi)匯總,,Excel中使用分類(lèi)匯總和數(shù)據(jù)透視可以按特定維度對(duì)數(shù)據(jù)進(jìn)行匯總,python中使用的主要函數(shù)是groupby和pivot_table,。下面分別介紹這兩個(gè)函數(shù)的使用方法,。

分類(lèi)匯總

Excel的數(shù)據(jù)目錄下提供了“分類(lèi)匯總”功能,可以按指定的字段和匯總方式對(duì)數(shù)據(jù)表進(jìn)行匯總,。Python中通過(guò)Groupby函數(shù)完成相應(yīng)的操作,,并可以支持多級(jí)分類(lèi)匯總。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Groupby是進(jìn)行分類(lèi)匯總的函數(shù),,使用方法很簡(jiǎn)單,,制定要分組的列名稱(chēng)就可以,,也可以同時(shí)制定多個(gè)列名稱(chēng),groupby按列名稱(chēng)出現(xiàn)的順序進(jìn)行分組,。同時(shí)要制定分組后的匯總方式,,常見(jiàn)的是計(jì)數(shù)和求和兩種。

#對(duì)所有列進(jìn)行計(jì)數(shù)匯總

df_inner.groupby('city').count()

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

可以在groupby中設(shè)置列名稱(chēng)來(lái)對(duì)特定的列進(jìn)行匯總,。下面的代碼中按城市對(duì)id字段進(jìn)行匯總計(jì)數(shù),。

#對(duì)特定的ID列進(jìn)行計(jì)數(shù)匯總

df_inner.groupby('city')['id'].count()

city

beijing 2

guangzhou 1

shanghai 2

shenzhen 1

Name: id, dtype: int64

在前面的基礎(chǔ)上增加第二個(gè)列名稱(chēng),分布對(duì)city和size兩個(gè)字段進(jìn)行計(jì)數(shù)匯總,。

#對(duì)兩個(gè)字段進(jìn)行匯總計(jì)數(shù)

df_inner.groupby(['city','size'])['id'].count()

city size

beijing A 1

F 1

guangzhou A 1

shanghai A 1

B 1

shenzhen C 1

Name: id, dtype: int64

除了計(jì)數(shù)和求和外,,還可以對(duì)匯總后的數(shù)據(jù)同時(shí)按多個(gè)維度進(jìn)行計(jì)算,下面的代碼中按城市對(duì)price字段進(jìn)行匯總,,并分別計(jì)算price的數(shù)量,,總金額和平均金額。

#對(duì)city字段進(jìn)行匯總并計(jì)算price的合計(jì)和均值,。

df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

數(shù)據(jù)透視

Excel中的插入目錄下提供“數(shù)據(jù)透視表”功能對(duì)數(shù)據(jù)表按特定維度進(jìn)行匯總,。Python中也提供了數(shù)據(jù)透視表功能。通過(guò)pivot_table函數(shù)實(shí)現(xiàn)同樣的效果,。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

數(shù)據(jù)透視表也是常用的一種數(shù)據(jù)分類(lèi)匯總方式,,并且功能上比groupby要強(qiáng)大一些。下面的代碼中設(shè)定city為行字段,,size為列字段,,price為值字段。分別計(jì)算price的數(shù)量和金額并且按行與列進(jìn)行匯總,。

#數(shù)據(jù)透視表

pd.pivot_table(df_inner,index=["city"],values=["price"],columns=["size"],aggfunc=

[len,np.sum],fill_value=0,margins=True)

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

8,,數(shù)據(jù)統(tǒng)計(jì)

第九部分為數(shù)據(jù)統(tǒng)計(jì),這里主要介紹數(shù)據(jù)采樣,,標(biāo)準(zhǔn)差,,協(xié)方差和相關(guān)系數(shù)的使用方法。

數(shù)據(jù)采樣

Excel的數(shù)據(jù)分析功能中提供了數(shù)據(jù)抽樣的功能,,如下圖所示,。Python通過(guò)sample函數(shù)完成數(shù)據(jù)采樣。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Sample是進(jìn)行數(shù)據(jù)采樣的函數(shù),,設(shè)置n的數(shù)量就可以了,。函數(shù)自動(dòng)返回參與的結(jié)果。

#簡(jiǎn)單的數(shù)據(jù)采樣

df_inner.sample(n=3)

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Weights參數(shù)是采樣的權(quán)重,,通過(guò)設(shè)置不同的權(quán)重可以更改采樣的結(jié)果,,權(quán)重高的數(shù)據(jù)將更有希望被選中。這里手動(dòng)設(shè)置6條數(shù)據(jù)的權(quán)重值。將前面4個(gè)設(shè)置為0,,后面兩個(gè)分別設(shè)置為0.5。

#手動(dòng)設(shè)置采樣權(quán)重

weights = [0, 0, 0, 0, 0.5, 0.5]

df_inner.sample(n=2, weights=weights)

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

從采樣結(jié)果中可以看出,,后兩條權(quán)重高的數(shù)據(jù)被選中,。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Sample函數(shù)中還有一個(gè)參數(shù)replace,用來(lái)設(shè)置采樣后是否放回,。

#采樣后不放回

df_inner.sample(n=6, replace=False)

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

#采樣后放回

df_inner.sample(n=6, replace=True)

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

描述統(tǒng)計(jì)

Excel中的數(shù)據(jù)分析中提供了描述統(tǒng)計(jì)的功能,。Python中可以通過(guò)Describe對(duì)數(shù)據(jù)進(jìn)行描述統(tǒng)計(jì)。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Describe函數(shù)是進(jìn)行描述統(tǒng)計(jì)的函數(shù),,自動(dòng)生成數(shù)據(jù)的數(shù)量,,均值,標(biāo)準(zhǔn)差等數(shù)據(jù),。下面的代碼中對(duì)數(shù)據(jù)表進(jìn)行描述統(tǒng)計(jì),,并使用round函數(shù)設(shè)置結(jié)果顯示的小數(shù)位。并對(duì)結(jié)果數(shù)據(jù)進(jìn)行轉(zhuǎn)置,。

#數(shù)據(jù)表描述性統(tǒng)計(jì)

df_inner.describe().round(2).T

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

標(biāo)準(zhǔn)差

Python中的Std函數(shù)用來(lái)接算特定數(shù)據(jù)列的標(biāo)準(zhǔn)差,。

#標(biāo)準(zhǔn)差

df_inner['price'].std()

1523.3516556155596

協(xié)方差

Excel中的數(shù)據(jù)分析功能中提供協(xié)方差的計(jì)算,python中通過(guò)cov函數(shù)計(jì)算兩個(gè)字段或數(shù)據(jù)表中各字段間的協(xié)方差,。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Cov函數(shù)用來(lái)計(jì)算兩個(gè)字段間的協(xié)方差,,可以只對(duì)特定字段進(jìn)行計(jì)算,也可以對(duì)整個(gè)數(shù)據(jù)表中各個(gè)列之間進(jìn)行計(jì)算,。

#兩個(gè)字段間的協(xié)方差

df_inner['price'].cov(df_inner['m-point'])

17263.200000000001

#數(shù)據(jù)表中所有字段間的協(xié)方差

df_inner.cov()

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

相關(guān)分析

Excel的數(shù)據(jù)分析功能中提供了相關(guān)系數(shù)的計(jì)算功能,,python中則通過(guò)corr函數(shù)完成相關(guān)分析的操作,并返回相關(guān)系數(shù),。

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

Corr函數(shù)用來(lái)計(jì)算數(shù)據(jù)間的相關(guān)系數(shù),,可以單獨(dú)對(duì)特定數(shù)據(jù)進(jìn)行計(jì)算,也可以對(duì)整個(gè)數(shù)據(jù)表中各個(gè)列進(jìn)行計(jì)算,。相關(guān)系數(shù)在-1到1之間,,接近1為正相關(guān),接近-1為負(fù)相關(guān),,0為不相關(guān),。

#相關(guān)性分析

df_inner['price'].corr(df_inner['m-point'])

0.77466555617085264

#數(shù)據(jù)表相關(guān)性分析

df_inner.corr()

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

9,,數(shù)據(jù)輸出

第九部分是數(shù)據(jù)輸出,,處理和分析完的數(shù)據(jù)可以輸出為xlsx格式和csv格式。

寫(xiě)入excel

#輸出到excel格式

df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc')

像Excel一樣使用python進(jìn)行數(shù)據(jù)分析-(3)

寫(xiě)入csv

#輸出到CSV格式

df_inner.to_csv('excel_to_python.csv')

在數(shù)據(jù)處理的過(guò)程中,,大部分基礎(chǔ)工作是重復(fù)和機(jī)械的,,對(duì)于這部分基礎(chǔ)工作,,我們可以使用自定義函數(shù)進(jìn)行自動(dòng)化。以下簡(jiǎn)單介紹對(duì)數(shù)據(jù)表信息獲取自動(dòng)化處理。

#創(chuàng)建數(shù)據(jù)表

df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],

"date":pd.date_range('20130102', periods=6),

"city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],

"age":[23,44,54,32,34,32],

"category":['100-A','100-B','110-A','110-C','210-A','130-F'],

"price":[1200,np.nan,2133,5433,np.nan,4432]},

columns =['id','date','city','category','age','price'])

#創(chuàng)建自定義函數(shù)

def table_info(x):

shape=x.shape

types=x.dtypes

colums=x.columns

print("數(shù)據(jù)維度(行,,列):\n",shape)

print("數(shù)據(jù)格式:\n",types)

print("列名稱(chēng):\n",colums)

#調(diào)用自定義函數(shù)獲取df數(shù)據(jù)表信息并輸出結(jié)果

table_info(df)

數(shù)據(jù)維度(行,,列):

(6, 6)

數(shù)據(jù)格式:

id int64

date datetime64[ns]

city object

category object

age int64

price float64

dtype: object

列名稱(chēng):

Index(['id', 'date', 'city', 'category', 'age', 'price'], dtype='object')

本篇是《像Excel一樣使用python進(jìn)行數(shù)據(jù)分析》系列文章的最后一篇。在這個(gè)系列中我們列舉了python中36個(gè)簡(jiǎn)單的函數(shù)來(lái)實(shí)現(xiàn)excel中最常見(jiàn)的一些功能,。感興趣的朋友可以下載并閱讀pandas官方文檔,,里面有更詳細(xì)的函數(shù)說(shuō)明。也歡迎給我留言進(jìn)行交流,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多