項(xiàng)目10 數(shù)據(jù)分析Pandas基礎(chǔ)_第1頁
項(xiàng)目10 數(shù)據(jù)分析Pandas基礎(chǔ)_第2頁
項(xiàng)目10 數(shù)據(jù)分析Pandas基礎(chǔ)_第3頁
項(xiàng)目10 數(shù)據(jù)分析Pandas基礎(chǔ)_第4頁
項(xiàng)目10 數(shù)據(jù)分析Pandas基礎(chǔ)_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)分析Pandas入門項(xiàng)目十?dāng)?shù)據(jù)分析Pandas入門10.數(shù)據(jù)分析Pandas入門10.1初識(shí)pandas 10.2pandas數(shù)據(jù)結(jié)構(gòu)10.1初識(shí)pandas

數(shù)字類型是Python中的一種數(shù)據(jù)類型,指的是Python程序中所用到的數(shù)字。根據(jù)數(shù)字的不同特點(diǎn),將數(shù)字類型細(xì)分為整型(int)、浮點(diǎn)型(float)、復(fù)數(shù)類型(complex)和布爾類型(bool)。整型:Python程序中的整數(shù)。如10、21、33。浮點(diǎn)型:Python程序中的小數(shù)或指數(shù)。如3.14、4.0、5.3E-3。復(fù)數(shù)類型:Python程序中用a+bj或a+bJ表示的,a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部。如1+2j、3-4j。布爾類型:用于描述條件判斷的結(jié)果,只有True和False兩個(gè)值。True為真,F(xiàn)alse為假。

Pandas是Python語言的一個(gè)擴(kuò)展程序庫,用于數(shù)據(jù)分析。

Pandas是一個(gè)開放源碼、BSD許可的庫,提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。

Pandas名字衍生自術(shù)語"paneldata"(面板數(shù)據(jù))和"Pythondataanalysis"(Python數(shù)據(jù)分析)。

Pandas一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集,基礎(chǔ)是

Numpy(提供高性能的矩陣運(yùn)算)。10.1初識(shí)pandas

數(shù)字類型是Python中的一種數(shù)據(jù)類型,指的是Python程序中所用到的數(shù)字。根據(jù)數(shù)字的不同特點(diǎn),將數(shù)字類型細(xì)分為整型(int)、浮點(diǎn)型(float)、復(fù)數(shù)類型(complex)和布爾類型(bool)。整型:Python程序中的整數(shù)。如10、21、33。浮點(diǎn)型:Python程序中的小數(shù)或指數(shù)。如3.14、4.0、5.3E-3。復(fù)數(shù)類型:Python程序中用a+bj或a+bJ表示的,a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部。如1+2j、3-4j。布爾類型:用于描述條件判斷的結(jié)果,只有True和False兩個(gè)值。True為真,F(xiàn)alse為假。

Pandas可以從各種文件格式比如CSV、JSON、SQL、MicrosoftExcel導(dǎo)入數(shù)據(jù)。

Pandas可以對(duì)各種數(shù)據(jù)進(jìn)行運(yùn)算操作,比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征。

Pandas廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計(jì)學(xué)等各個(gè)數(shù)據(jù)分析領(lǐng)域。10.2pandas數(shù)據(jù)結(jié)構(gòu)10.2.1Series數(shù)據(jù)結(jié)構(gòu) 10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2.3DataFrame數(shù)據(jù)操作10.2.4DataFrame統(tǒng)計(jì)匯總10.2.5DataFrame數(shù)據(jù)清洗10.2.6DataFrame數(shù)據(jù)分析及可視化10.2pandas數(shù)據(jù)結(jié)構(gòu)

Pandas導(dǎo)入規(guī)則importpandasaspdPandas主要有Series和DataFrame兩種數(shù)據(jù)類型。10.2pandas數(shù)據(jù)結(jié)構(gòu)

10.2.1Series數(shù)據(jù)結(jié)構(gòu)

Series是一維數(shù)據(jù)結(jié)構(gòu),相當(dāng)于Excel表格中的一列,能夠保存任何數(shù)據(jù)類型(整數(shù)、浮點(diǎn)數(shù)、字符串等)。Series由一組(列)數(shù)據(jù)及與之相關(guān)的索引(相當(dāng)于Excel中的行號(hào))組成,每個(gè)數(shù)據(jù)帶有一個(gè)自動(dòng)索引(默認(rèn)從0開始遞增),也可以自定義索引(行號(hào))名稱,用于對(duì)數(shù)據(jù)進(jìn)行說明。10.2pandas數(shù)據(jù)結(jié)構(gòu)

X=pd.Series(data,index)參數(shù)data為數(shù)據(jù),可以是字典、列表、Numpy的ndarray數(shù)組等;參數(shù)index為索引,值必須唯一,類似于Python字典的鍵,可以不傳,默認(rèn)為從0開始遞增的整數(shù)。1.Series對(duì)象的格式10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

10.2.1Series數(shù)據(jù)結(jié)構(gòu)(1)使用自動(dòng)索引創(chuàng)建Series對(duì)象

importpandasaspd

x=pd.Series([1000,2000,3000,4000,5000,6000])

print(x)注釋:

第一行導(dǎo)入pandas包

第二行調(diào)用pd.Series()函數(shù),以列表[1000,2000,3000,4000,5000,6000]為參數(shù),創(chuàng)建對(duì)象x

第三行輸出對(duì)象x1.Series對(duì)象的格式示例(1)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:010001200023000340004500056000dtype:int64在輸出結(jié)果中第一列為自動(dòng)創(chuàng)建的索引(行號(hào)),如果沒有指定索引,默認(rèn)從0開始遞增。第二列為數(shù)據(jù),相當(dāng)于給對(duì)象x的每一個(gè)數(shù)據(jù)增加了一個(gè)索引名(行號(hào)),構(gòu)成一個(gè)Series結(jié)構(gòu)數(shù)據(jù)。第1列第2列10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

10.2.1Series數(shù)據(jù)結(jié)構(gòu)(2)使用自定義索引創(chuàng)建Series對(duì)象

importpandasaspd

x=pd.Series([1000,2000,3000,4000,5000,6000],index=["1月份銷售額","2月份銷售額","3月份銷售額","4月份銷售額","5月份銷售額","6月份銷售額"])

print(x)注釋:

在創(chuàng)建Series對(duì)象時(shí),可以為數(shù)據(jù)增加自定義索引,相當(dāng)于每行數(shù)據(jù)含義或名稱,Series()函數(shù)包括兩參數(shù),第一個(gè)參數(shù)為數(shù)據(jù),第二個(gè)參數(shù)使用index為數(shù)據(jù)行指定數(shù)據(jù)含義或名稱。索引名稱與數(shù)據(jù)要一一對(duì)應(yīng)。1.Series對(duì)象的格式示例(2)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額6000dtype:int6410.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

10.2.1Series數(shù)據(jù)結(jié)構(gòu)(3)使用字典為Series創(chuàng)建對(duì)象

importpandasaspd

x1={"1月份銷售額":1000,"2月份銷售額":2000,"3月份銷售額":3000,"4月份銷售額":4000,"5月份銷售額":5000,"6月份銷售額":6000}x=pd.Series(x1)

print(x)1.Series對(duì)象的格式示例(3)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額6000dtype:int64在輸出結(jié)果中使用x1字典作為Series()函數(shù)參數(shù),則字典的鍵值就成為數(shù)據(jù)的索引名稱。10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2.1.2.Series對(duì)象基本操作●獲取索引及修改索引●增加數(shù)據(jù)●指定索引對(duì)應(yīng)數(shù)據(jù)刪除●指定索引對(duì)應(yīng)元素的獲取●通過條件篩選獲取數(shù)據(jù)●通過條件篩選獲取數(shù)據(jù)●統(tǒng)計(jì)信息●有條件的運(yùn)算10.2pandas數(shù)據(jù)結(jié)構(gòu)

importpandasaspd

x1={"1月份銷售額":1000,"2月份銷售額":2000,"3月份銷售額":3000,"4月份銷售額":4000,"5月份銷售額":5000,"6月份銷售額":6000}

x=pd.Series(x1)

#獲取X對(duì)象索引

print('1.修改前索引名稱:',x.index)

#修改X對(duì)象索引名稱

x.index=['1月銷售','2月銷售','3月銷售','4月銷售','5月銷售','6月銷售']

#輸出修改后的索引名稱

print('2.修改后索引名稱:',x.index)2.Series對(duì)象基本操作示例(1)●獲取索引及修改索引10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1.修改前索引名稱:Index(['1月份銷售額','2月份銷售額','3月份銷售額','4月份銷售額','5月份銷售額','6月份銷售額'],dtype='object')2.修改后索引名稱:Index(['1月銷售','2月銷售','3月銷售','4月銷售','5月銷售','6月銷售'],dtype='object')10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

importpandasaspd

x1={"1月份銷售額":1000,2月份銷售額":2000,"3月份銷售額":3000,"4月份銷售額":4000,"5月份銷售額":5000,"6月份銷售額":6000}

x=pd.Series(x1)#增加兩個(gè)數(shù)據(jù)

x['1-6月合計(jì)']=sum(x)#索引名為‘1-6月合計(jì)’,數(shù)值為1-6月的合計(jì)數(shù)

x['7月份銷售額']=8500

print(x)

print('-'*30)2.Series對(duì)象基本操作示例(2)●增加數(shù)據(jù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額60001-6月合計(jì)210007月份銷售額8500dtype:int64------------------------------在輸出結(jié)果中:由于Series數(shù)據(jù)結(jié)構(gòu)為1列,所以增加的數(shù)據(jù)只能在最后一行插入。10.2.1Series數(shù)據(jù)結(jié)構(gòu)在行后面插入數(shù)據(jù)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#刪除7月份銷售數(shù)據(jù)

x=x.drop('7月份銷售額')

print(x)2.Series對(duì)象基本操作示例(3)●刪除指定索引對(duì)應(yīng)數(shù)據(jù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額60001-6月合計(jì)21000dtype:int64使用drop()函數(shù)刪除數(shù)據(jù)。10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#獲取4-6月銷售數(shù)據(jù)

print(x['4月份銷售額':'6月份銷售額'])2.Series對(duì)象基本操作示例(4)●指定索引對(duì)應(yīng)元素的獲取10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:4月份銷售額40005月份銷售額50006月份銷售額6000dtype:int64x['4月份銷售額':'6月份銷售額'],字段名用[],從起始位置一直尾,中間用’:’。10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#獲取銷售額大于4000的銷售數(shù)據(jù)

print(x[x>4000])2.Series對(duì)象基本操作示例(5)●通過條件篩選獲取數(shù)據(jù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:5月份銷售額50006月份銷售額6000dtype:int6410.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#修改3月份銷售額

x["3月份銷售額"]=3500

print(x)2.Series對(duì)象基本操作示例(6)●指定索引對(duì)應(yīng)元素的修改10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額35004月份銷售額40005月份銷售額50006月份銷售額6000dtype:int6410.2.1Series數(shù)據(jù)結(jié)構(gòu)3月份銷售額改為350010.2pandas數(shù)據(jù)結(jié)構(gòu)

importpandasaspd

x1={"1月份銷售額":1000,"2月份銷售額":2000,"3月份銷售額":3000,"4月份銷售額":4000,"5月份銷售額":5000,"6月份銷售額":6000}

x=pd.Series(x1)

print(x.describe())2.Series對(duì)象基本操作示例(7)●統(tǒng)計(jì)信息10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:count6.000000mean3500.000000std1870.828693min1000.00000025%2250.00000050%3500.00000075%4750.000000max6000.000000dtype:float6410.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

也可以通過如下方法分別獲取:min():獲取最小值max():獲取最大值mean():獲取均值median():獲取中位數(shù)sum():獲取總和count():獲取總數(shù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

mportpandasaspd

x1={"1月份銷售額":1000,"2月份銷售額":2000,"3月份銷售額":3000,"4月份銷售額":4000,"5月份銷售額":5000,"6月份銷售額":6000}

x=pd.Series(x1)

#先篩選出銷售額大于4000的月份,在原來基礎(chǔ)上增加50%

x2=x[x>4000]

x2=x2*0.5+x2

print('-'*30)

print(x2)2.Series對(duì)象基本操作示例(8)●有條件的運(yùn)算10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:------------------------------5月份銷售額7500.06月份銷售額9000.0dtype:float64------------------------------10.2.1Series數(shù)據(jù)結(jié)構(gòu)

【技能實(shí)訓(xùn)】

用字典創(chuàng)建五門課程的名稱及成績(jī),并用describe()函數(shù)進(jìn)行分析統(tǒng)計(jì),結(jié)果保留兩位小數(shù)。課程名稱:語文90,數(shù)學(xué)75,英語85,體育82,化學(xué)70importpandasaspdcj={'語文':90,'數(shù)學(xué)':75,'英語':85,'體育':82,'化學(xué)':70}cj=pd.Series(cj)print(round(cj.describe(),2))10.2pandas

數(shù)據(jù)結(jié)構(gòu)

10.2.1Series數(shù)據(jù)結(jié)構(gòu)示例(9)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:count5.00

#課程門數(shù)mean80.40

#平均分std7.96

#課程標(biāo)準(zhǔn)差min70.00

#最低分?jǐn)?shù)25%75.00

#25%分位是75分50%82.00#50%分位是82分75%85.00

#75%分位是85分max90.00

#最高分?jǐn)?shù)dtype:float64Round()是四舍五入保留小數(shù)位函數(shù),用法Round(數(shù)值,小數(shù)位)。10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)

DataFrame是Pandas中的一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),包含有一組有序的列,類似于Excel、SQL表,每列可以是不同的值類型(數(shù)值、字符串、布爾型等),DataFrame即有行索引(行名稱、標(biāo)簽)也有列索引(列名稱、標(biāo)簽),可以被看做是由Series組成的字典。10.2pandas數(shù)據(jù)結(jié)構(gòu)

X=pd.DataFrame(data,index,columns,dtype,copy)參數(shù)說明:

data:一組數(shù)據(jù)(ndarray、series,map,lists,dict等類型)。

index:索引值,或者可以稱為行標(biāo)簽。

columns:列標(biāo)簽,默認(rèn)為RangeIndex(0,1,2,…,n)。

dtype:數(shù)據(jù)類型。

copy:拷貝數(shù)據(jù),默認(rèn)為False。

PandasDataFrame是一個(gè)二維的數(shù)組結(jié)構(gòu),類似二維數(shù)組?!馜ataFrame對(duì)象格式10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

根據(jù)以下某公司部分工資明細(xì)表,創(chuàng)建DataFrame。10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#導(dǎo)入Pandasimportpandasaspd#創(chuàng)建工資明細(xì)表二維表Gz=[['李文文','財(cái)務(wù)部','經(jīng)理',5000,8000],['張寶強(qiáng)','財(cái)務(wù)部','員工',4500,5500],['趙強(qiáng)','財(cái)務(wù)部','員工',4800,6000],['呂小雯','銷售部','經(jīng)理',5500,8500],['陳國中','銷售部','員工',3500,4500],['黃彩虹','銷售部','員工',3800,5000],['趙忠','生產(chǎn)部','經(jīng)理',6000,9000],['李發(fā)旺','生產(chǎn)部','員工',5400,6000],['王武','生產(chǎn)部','員工',4500,7000]]df=pd.DataFrame(Gz)print(df)示例10.2.2(1)●使用列表創(chuàng)建10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

01

2

3

40李文文財(cái)務(wù)部經(jīng)理500080001張寶強(qiáng)財(cái)務(wù)部員工450055002趙強(qiáng)

財(cái)務(wù)部員工480060003呂小雯銷售部經(jīng)理550085004陳國中銷售部員工350045005黃彩虹銷售部員工380050006趙忠

生產(chǎn)部經(jīng)理600090007李發(fā)旺生產(chǎn)部員工540060008王武

生產(chǎn)部員工4500700010.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#增加列名稱df.columns=["姓名","部門",'職務(wù)','基本工資','津貼補(bǔ)貼']#增加索引(行,序號(hào)),從1開始,不大于10,按整數(shù)排列df.index=range(1,10)示例10.2.2(2)增加列名及索引名稱10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

姓名部門

職務(wù)基本工資津貼補(bǔ)貼1李文文財(cái)務(wù)部經(jīng)理500080002張寶強(qiáng)財(cái)務(wù)部員工450055003趙強(qiáng)

財(cái)務(wù)部員工480060004呂小雯銷售部經(jīng)理550085005陳國中銷售部員工350045006黃彩虹銷售部員工380050007趙忠

生產(chǎn)部經(jīng)理600090008李發(fā)旺生產(chǎn)部員工540060009王武

生產(chǎn)部員工4500700010.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#導(dǎo)入PandasimportpandasaspdGz={'姓名':['李文文','張寶強(qiáng)','趙強(qiáng)','呂小雯','陳國中','黃彩虹','趙忠','李發(fā)旺','王武'],'部門':['財(cái)務(wù)部','財(cái)務(wù)部','財(cái)務(wù)部','銷售部','銷售部','銷售部','生產(chǎn)部','生產(chǎn)部','生產(chǎn)部'],'職務(wù)':['經(jīng)理','員工','員工','經(jīng)理','員工','員工','經(jīng)理','員工','員工'],'基本工資':[5000,4500,4800,5500,3500,3800,6000,5400,4500],'津貼補(bǔ)貼':[8000,5500,6000,8500,4500,5000,9000,6000,7000]}df=pd.DataFrame(Gz)#修改索引名(序號(hào))df.index=range(1,10)print(df)示例10.2.2(3)●使用包含列表字典創(chuàng)建10.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

姓名

部門

職務(wù)基本工資津貼補(bǔ)貼1李文文財(cái)務(wù)部經(jīng)理500080002張寶強(qiáng)財(cái)務(wù)部員工450055003趙強(qiáng)

財(cái)務(wù)部員工480060004呂小雯銷售部經(jīng)理550085005陳國中銷售部員工350045006黃彩虹銷售部員工380050007趙忠

生產(chǎn)部經(jīng)理600090008李發(fā)旺生產(chǎn)部員工540060009王武

生產(chǎn)部員工4500700010.2.2DataFrame數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

#新增應(yīng)發(fā)合計(jì)列,并進(jìn)行運(yùn)算:應(yīng)發(fā)合計(jì)=基本工資+津貼補(bǔ)貼df['應(yīng)發(fā)合計(jì)']=df['基本工資']+df['津貼補(bǔ)貼']#新增社保公積金列,社保及公積金個(gè)人扣繳比例為23%,并進(jìn)行運(yùn)算:社保公積金#=應(yīng)發(fā)合計(jì)*0.23df['社保公積金']=df['應(yīng)發(fā)合計(jì)']*0.23#新增實(shí)發(fā)合計(jì)列,并進(jìn)行運(yùn)算:實(shí)發(fā)合計(jì)=應(yīng)發(fā)合計(jì)-社保公積金df['實(shí)發(fā)合計(jì)']=df['應(yīng)發(fā)合計(jì)']-df['社保公積金']print(df)示例10.2.3(1)●增加多列并運(yùn)算10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)1李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.02張寶強(qiáng)財(cái)務(wù)部員工45005500100002300.07700.03趙強(qiáng)

財(cái)務(wù)部員工48006000108002484.08316.04呂小雯銷售部經(jīng)理55008500140003220.010780.05陳國中銷售部員工3500450080001840.06160.06黃彩虹銷售部員工3800500088002024.06776.07趙忠

生產(chǎn)部經(jīng)理60009000150003450.011550.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.09王武

生產(chǎn)部員工45007000115002645.08855.010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

importpandasaspd#設(shè)置打印結(jié)果為數(shù)字對(duì)齊pd.set_option('display.unicode.ambiguous_as_wide',True)pd.set_option('display.unicode.east_asian_width',True)Gz={'姓名':['李文文','張寶強(qiáng)','趙強(qiáng)','呂小雯','陳國中','黃彩虹','趙忠','李發(fā)旺','王武'],'部門':['財(cái)務(wù)部','財(cái)務(wù)部','財(cái)務(wù)部','銷售部','銷售部','銷售部','生產(chǎn)部','生產(chǎn)部','生產(chǎn)部'],'職務(wù)':['經(jīng)理','員工','員工','經(jīng)理','員工','員工','經(jīng)理','員工','員工'],'基本工資':[5000,4500,4800,5500,3500,3800,6000,5400,4500],'津貼補(bǔ)貼':[8000,5500,6000,8500,4500,5000,9000,6000,7000]}df=pd.DataFrame(Gz)示例10.2.3(2)●為行、列索引添加名稱并設(shè)置打印數(shù)字對(duì)齊10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

#修改索引名(序號(hào)),從1開始,默認(rèn)為從0開始df.index=range(1,10)#新增應(yīng)發(fā)合計(jì)列,并進(jìn)行運(yùn)算:應(yīng)發(fā)合計(jì)=基本工資+津貼補(bǔ)貼df['應(yīng)發(fā)合計(jì)']=df['基本工資']+df['津貼補(bǔ)貼']#新增社保公積金列,社保及公積金個(gè)人扣繳比例為23%,并進(jìn)行運(yùn)算:社保公積金=應(yīng)發(fā)合計(jì)*0.23df['社保公積金']=df['應(yīng)發(fā)合計(jì)']*0.23#新增實(shí)發(fā)合計(jì)列,并進(jìn)行運(yùn)算:實(shí)發(fā)合計(jì)=應(yīng)發(fā)合計(jì)-社保公積金df['實(shí)發(fā)合計(jì)']=df['應(yīng)發(fā)合計(jì)']-df['社保公積金']#設(shè)置行索引名稱為‘序號(hào)’='序號(hào)'#設(shè)置列索引名稱為‘項(xiàng)目’='項(xiàng)目'print(df)示例10.2.3(2)續(xù)●為行、列索引添加名稱并設(shè)置打印數(shù)字對(duì)齊10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)1李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.02張寶強(qiáng)財(cái)務(wù)部員工45005500100002300.07700.03趙強(qiáng)

財(cái)務(wù)部員工48006000108002484.08316.04呂小雯銷售部經(jīng)理55008500140003220.010780.05陳國中銷售部員工3500450080001840.06160.06黃彩虹銷售部員工3800500088002024.06776.07趙忠

生產(chǎn)部經(jīng)理60009000150003450.011550.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.09王武

生產(chǎn)部員工45007000115002645.08855.010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

將工資表保存到桌面文件夾,格式為xlsx的電子表格第一種方法:使用正斜杠”/”df.to_excel("C:/Users/Administrator/工資明細(xì)表.xlsx")第二種方法:使用雙反斜杠”/”df.to_excel("C:\\Users\\Administrator\\工資明細(xì)表.xlsx")第三種方法:在前面加r,保持字符原始值●工資表保存與讀取10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

df.to_excel(r"C:\Users\Administrator\工資明細(xì)表.xlsx")示例10.2.3(3)●工資表保存與讀取10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

輸出的Excel文件并打開結(jié)果如下:

10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

df2=pd.read_excel("C:/Users/Administrator/工資明細(xì)表.xlsx")知識(shí)拓展:

#顯示所有列

pd.set_option('display.max_columns',None)

#顯示所有行

pd.set_option('display.max_rows',None)

#設(shè)置value的顯示長(zhǎng)度為100,默認(rèn)為50

#pd.set_option('max_colwidth',500)

#設(shè)置打印輸出不換行顯示

pd.set_option('display.width',1000)如要讀入工資表:10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df['姓名'])示例10.2.3(4)●單列輸出10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:序號(hào)1李文文2張寶強(qiáng)3趙強(qiáng)4呂小雯5陳國中6黃彩虹7趙忠8李發(fā)旺9王武Name:姓名,dtype:object10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[['姓名','職務(wù)','部門','應(yīng)發(fā)合計(jì)']])示例10.2.3(5)●多列輸出10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

項(xiàng)目姓名職務(wù)部門應(yīng)發(fā)合計(jì)序號(hào)1李文文經(jīng)理財(cái)務(wù)部130002張寶強(qiáng)員工財(cái)務(wù)部100003趙強(qiáng)員工財(cái)務(wù)部108004呂小雯經(jīng)理銷售部140005陳國中員工銷售部80006黃彩虹員工銷售部88007趙忠經(jīng)理生產(chǎn)部150008李發(fā)旺員工生產(chǎn)部114009王武員工生產(chǎn)部1150010.2.3DataFrame數(shù)據(jù)操作多列輸出使用df[[‘列1’,’列2’,……]]格式10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[df['應(yīng)發(fā)合計(jì)']>10000])示例10.2.3(6)查詢應(yīng)發(fā)合計(jì)大于10000的員工●查詢過濾10.2.3DataFrame數(shù)據(jù)操作●按條件查詢,顯示所有列10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)1李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.03趙強(qiáng)財(cái)務(wù)部員工48006000108002484.08316.04呂小雯銷售部經(jīng)理55008500140003220.010780.07趙忠生產(chǎn)部經(jīng)理60009000150003450.011550.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.09王武生產(chǎn)部員工45007000115002645.08855.010.2.3DataFrame數(shù)據(jù)操作篩選出應(yīng)發(fā)合計(jì)大于10000的記錄10.2pandas數(shù)據(jù)結(jié)構(gòu)

df1=df[df['應(yīng)發(fā)合計(jì)']>10000]print(df1[['姓名','應(yīng)發(fā)合計(jì)']])示例10.2.3(7)查詢應(yīng)發(fā)合計(jì)大于10000的員工,顯示姓名、應(yīng)發(fā)合計(jì)●查詢過濾10.2.3DataFrame數(shù)據(jù)操作●按條件查詢,顯示部分列上述代碼可合成print(df[['姓名','應(yīng)發(fā)合計(jì)']][df['應(yīng)發(fā)合計(jì)']>10000])10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名應(yīng)發(fā)合計(jì)序號(hào)1李文文130003趙強(qiáng)108004呂小雯140007趙忠150008李發(fā)旺114009王武1150010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[['部門','應(yīng)發(fā)合計(jì)']][df['應(yīng)發(fā)合計(jì)']==df['應(yīng)發(fā)合計(jì)'].max()])示例10.2.3(8)查詢應(yīng)發(fā)合計(jì)的最大,顯示部門、應(yīng)發(fā)合計(jì)●查詢過濾10.2.3DataFrame數(shù)據(jù)操作●按條件查詢,顯示部分列上述代碼可合成print(df[['姓名','應(yīng)發(fā)合計(jì)']][df['應(yīng)發(fā)合計(jì)']>10000])10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目部門應(yīng)發(fā)合計(jì)序號(hào)7生產(chǎn)部1500010.2.3DataFrame數(shù)據(jù)操作

顯示部分列用[[“”,””….]]表示,如上題顯示部門、應(yīng)發(fā)合計(jì)用df[['部門','應(yīng)發(fā)合計(jì)']]表示;有條件顯示部分列,在其后面加上[條件表達(dá)式],如上題查詢應(yīng)發(fā)合計(jì)最大的部門,用[df['應(yīng)發(fā)合計(jì)']==df['應(yīng)發(fā)合計(jì)'].max()])表示。print(df[(df['職務(wù)']=='經(jīng)理')&(df['應(yīng)發(fā)合計(jì)']>13000)])10.2pandas數(shù)據(jù)結(jié)構(gòu)

df=df[df.姓名.str.contains('李')]

print(df)示例10.2.3(9)查詢姓名包含“李”姓的所有員工●模糊查詢10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)1李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.010.2.3DataFrame數(shù)據(jù)操作篩選出姓名包含“李”10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[df['姓名']=='趙強(qiáng)'])示例10.2.3(10)查詢姓名為“趙強(qiáng)”的員工●精準(zhǔn)查詢10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)3趙強(qiáng)財(cái)務(wù)部員工48006000108002484.08316.010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[(df['職務(wù)']=='經(jīng)理')&(df['應(yīng)發(fā)合計(jì)']>13000)])示例10.2.3(11)查詢職務(wù)為經(jīng)理并且應(yīng)發(fā)合計(jì)大于13000元的員工●多條件查詢10.2.3DataFrame數(shù)據(jù)操作

多條件查詢每個(gè)條件用()括起來,“并且”用&表示,“或者”用|表示,上題第一個(gè)條件職務(wù)為經(jīng)理用(df['職務(wù)']=='經(jīng)理')表示,條件是并且關(guān)系用&表示,第二條件是應(yīng)發(fā)合計(jì)大于13000元,用(df['應(yīng)發(fā)合計(jì)']>13000)表示。10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)4呂小雯銷售部經(jīng)理55008500140003220.010780.07趙忠生產(chǎn)部經(jīng)理60009000150003450.011550.010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df[['姓名','部門','職務(wù)','應(yīng)發(fā)合計(jì)']][(df['職務(wù)']=='經(jīng)理')&(df['應(yīng)發(fā)合計(jì)']>13000)])示例10.2.3(12)可改成只顯示姓名、部門、職務(wù)、應(yīng)發(fā)合計(jì)●多條件查詢10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:姓名部門職務(wù)應(yīng)發(fā)合計(jì)4呂小雯銷售部經(jīng)理140007趙忠生產(chǎn)部經(jīng)理1500010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.columns)示例10.2.3(13)●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●獲取列名10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:

Index(['姓名','部門','職務(wù)','基本工資','津貼補(bǔ)貼','應(yīng)發(fā)合計(jì)','社保公積金','實(shí)發(fā)合計(jì)'],dtype='object',name='項(xiàng)目')10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.shape)示例10.2.3(14)●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●獲取形狀(行數(shù)和列數(shù))10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:(9,8)10.2.3DataFrame數(shù)據(jù)操作

數(shù)據(jù)形狀為9行8列10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.describe())#如要保留兩位小數(shù):print(round(df.describe(),2))示例10.2.3(15)●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●獲取描述統(tǒng)計(jì)信息10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)count9.0000009.0000009.0000009.0000009.000000mean4777.7777786611.11111111388.8888892619.4444448769.444444std805.8811601596.4370052316.486804532.7919651783.694839min3500.0000004500.0000008000.0000001840.0000006160.00000025%4500.0000005500.00000010000.0000002300.0000007700.00000050%4800.0000006000.00000011400.0000002622.0000008778.00000075%5400.0000008000.00000013000.0000002990.00000010010.000000max6000.0000009000.00000015000.0000003450.00000011550.00000010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

Count:統(tǒng)計(jì)每列元素個(gè)數(shù),每一行代表一個(gè)記錄,也表示記錄數(shù);

Mean:每個(gè)工資項(xiàng)目的平均值;

Std:每個(gè)工資項(xiàng)目的標(biāo)準(zhǔn)差;

Min:每個(gè)工資項(xiàng)目的最小值;

25%:第一四分位數(shù),表示每個(gè)工資項(xiàng)目從小到大排序時(shí),此數(shù)位于第1/4分位點(diǎn)處。說明:●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●獲取描述統(tǒng)計(jì)信息10.2pandas數(shù)據(jù)結(jié)構(gòu)

50%:第二四分位數(shù),表示每個(gè)工資項(xiàng)目從小到大排序時(shí),此數(shù)位于第1/2分位點(diǎn)處。觀察此數(shù)相當(dāng)于平均數(shù)的大小,可發(fā)現(xiàn)此分位點(diǎn)數(shù)的大于平均值,說明一半以上的員工大于平均值。如應(yīng)發(fā)合計(jì)的1/2分位點(diǎn)為11400元,平均工資為11388.89元,說明有一半的職工工資大于平均工資。75%:第三四分位數(shù),表示每個(gè)工資項(xiàng)目從小到大排序時(shí),此數(shù)位于第3/4分位點(diǎn)處。如應(yīng)發(fā)合計(jì)的3/4分位點(diǎn)為13000元,說明有25%的職工工資大于13000元。Max:每工資項(xiàng)目的最大值說明:●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●獲取描述統(tǒng)計(jì)信息10.2pandas數(shù)據(jù)結(jié)構(gòu)

●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法iloc,即indexlocate用index索引進(jìn)行定位訪問數(shù)據(jù)的方法,所以參數(shù)是整型;loc,則可以使用column(列)名和index(行)名進(jìn)行定位,loc[]中括號(hào)里面是先行后列,以逗號(hào)分割,行和列分別是行標(biāo)簽(行名)和列標(biāo)簽(列名)。10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.loc[3,'姓名'])示例10.2.3(16)要找出趙強(qiáng):●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:趙強(qiáng)進(jìn)程已結(jié)束,退出代碼010.2.3DataFrame數(shù)據(jù)操作

趙強(qiáng)位置在第序號(hào)姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)01李文文財(cái)務(wù)部經(jīng)理500080001300029901001012張寶強(qiáng)財(cái)務(wù)部員工45005500100002300770023趙強(qiáng)財(cái)務(wù)部員工48006000108002484831634呂小雯銷售部經(jīng)理5500115001400032201078045陳國中銷售部員工3500750080001840616056黃彩虹銷售部員工3800800088002024677667趙忠生產(chǎn)部經(jīng)理600090001500034501155078李發(fā)旺生產(chǎn)部員工54006000114002622877889王武生產(chǎn)部員工4500700011500264588553行10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.loc[4:6,['姓名','部門','職務(wù)','應(yīng)發(fā)合計(jì)']])示例10.2.3(17)如要找出一個(gè)區(qū)域,比如查詢銷售部、姓名、部門、職務(wù)、應(yīng)發(fā)合計(jì):●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)應(yīng)發(fā)合計(jì)序號(hào)4呂小雯銷售部經(jīng)理140005陳國中銷售部員工80006黃彩虹銷售部員工8800進(jìn)程已結(jié)束,退出代碼010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

因?yàn)橐樵冧N售部的數(shù)據(jù),銷售部行索引為4-6,列名為姓名、部門、職務(wù)、應(yīng)發(fā)合計(jì),行列標(biāo)簽之間用逗號(hào)隔開,行標(biāo)簽與行標(biāo)簽之間用冒號(hào)隔開。無論選擇單行還是多行或單列多列,本質(zhì)還是a[x,y]的表示形式,其中X或y可以省略。iloc[]與loc[]一樣,中括號(hào)里面也是先行后列,行列標(biāo)簽用逗號(hào)分割,與loc不同的是,iloc是根據(jù)行數(shù)與列數(shù)來索引的?!臼纠?0.2.3(17)】說明:●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法10.2pandas數(shù)據(jù)結(jié)構(gòu)

如上題可表示為:

print(df.iloc[3:6,[0,1,2,5]])

查詢行從索引0算起,第3到5行,列索引從0算起,第0列、1列、2列、5列

print(df.iloc[[1,3,5],[2,4]])

查詢行從索引0算起,為1行、3行、5行,列索引從0算起,為2列、4列

注意:行索引是前開后開,比如0:3表示從第0行到第3行,不包括第3行,列索引是前開后閉,如0:3表示從第0列到第3列,包括第3列?!臼纠?0.2.3(17)】說明:●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.T)示例10.2.3(18)將原來數(shù)據(jù)的行轉(zhuǎn)成列、將列轉(zhuǎn)成行排列,使用大寫’T’方法●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●數(shù)據(jù)行、列轉(zhuǎn)置10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:序號(hào)1234...6789項(xiàng)目...姓名李文文張寶強(qiáng)趙強(qiáng)呂小雯...黃彩虹趙忠李發(fā)旺王武部門財(cái)務(wù)部財(cái)務(wù)部財(cái)務(wù)部銷售部...銷售部生產(chǎn)部生產(chǎn)部生產(chǎn)部職務(wù)經(jīng)理員工員工經(jīng)理...員工經(jīng)理員工員工基本工資5000450048005500...3800600054004500津貼補(bǔ)貼8000550060008500...5000900060007000應(yīng)發(fā)合計(jì)13000100001080014000...8800150001140011500社保公積金2990.02300.02484.03220.0...2024.03450.02622.02645.0實(shí)發(fā)合計(jì)10010.07700.08316.010780.0...6776.011550.08778.08855.0[8rowsx9columns]10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

1.Sort_index(columns=None,axis=0,ascending=Flase),其中axis=0為默認(rèn)值,是指按照index(索引)對(duì)數(shù)據(jù)進(jìn)行降序,如果axis=1,是指按照index(索引)對(duì)數(shù)據(jù)進(jìn)行升序;df.sort_index(axis=0,ascending=False)

2.如按照某個(gè)變量(列)的取值對(duì)對(duì)象進(jìn)行排序,則需要指定參數(shù)sort_values()取值。如:對(duì)應(yīng)發(fā)工資進(jìn)行排序,順序?yàn)閺母叩降蚢scending=False,如升序排列,ascending=True用sort()函數(shù):●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●設(shè)置工資項(xiàng)目排序10.2pandas數(shù)據(jù)結(jié)構(gòu)

df1=df.sort_values(by='應(yīng)發(fā)合計(jì)',ascending=True)

print(df1)示例10.2.3(19)按”應(yīng)發(fā)合計(jì)”進(jìn)行排序,順序從低到高●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●設(shè)置工資項(xiàng)目排序10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)5陳國中銷售部員工3500450080001840.06160.06黃彩虹銷售部員工3800500088002024.06776.02張寶強(qiáng)財(cái)務(wù)部員工45005500100002300.07700.03趙強(qiáng)財(cái)務(wù)部員工48006000108002484.08316.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.09王武生產(chǎn)部員工45007000115002645.08855.01李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.04呂小雯銷售部經(jīng)理55008500140003220.010780.07趙忠生產(chǎn)部經(jīng)理60009000150003450.011550.0進(jìn)程已結(jié)束,退出代碼010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

print(df.sort_values(by=['部門','應(yīng)發(fā)合計(jì)'],ascending=False))示例10.2.3(20)按多個(gè)工資項(xiàng)目的值進(jìn)行排序)●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●設(shè)置工資項(xiàng)目排序10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)4呂小雯銷售部經(jīng)理55008500140003220.010780.06黃彩虹銷售部員工3800500088002024.06776.05陳國中銷售部員工3500450080001840.06160.01李文文財(cái)務(wù)部經(jīng)理50008000130002990.010010.03趙強(qiáng)財(cái)務(wù)部員工48006000108002484.08316.02張寶強(qiáng)財(cái)務(wù)部員工45005500100002300.07700.07趙忠生產(chǎn)部經(jīng)理60009000150003450.011550.09王武生產(chǎn)部員工45007000115002645.08855.08李發(fā)旺生產(chǎn)部員工54006000114002622.08778.0進(jìn)程已結(jié)束,退出代碼010.2.3DataFrame數(shù)據(jù)操作

【技能實(shí)訓(xùn)】

找出應(yīng)發(fā)合計(jì)大于14000元的職工,并顯示其姓名、部門、職務(wù)、應(yīng)發(fā)合計(jì)分析:先按df['應(yīng)發(fā)合計(jì)']>14000進(jìn)行行的篩選,再按[['姓名','部門','職務(wù)','應(yīng)發(fā)合計(jì)']]要求顯示列。

print(df.loc[df['應(yīng)發(fā)合計(jì)']>14000][['姓名','部門','職務(wù)','應(yīng)發(fā)合計(jì)']])10.2pandas

數(shù)據(jù)結(jié)構(gòu)

10.2.3DataFrame數(shù)據(jù)操作示例10.2.3(21)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)應(yīng)發(fā)合計(jì)序號(hào)6趙忠生產(chǎn)部經(jīng)理1500010.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

#統(tǒng)計(jì)每項(xiàng)工資項(xiàng)目的最大值='統(tǒng)計(jì)工資項(xiàng)目最大值:'print(df.iloc[:,3:8].max())#等介于print(df.iloc[:,3:8].max(axis=0))print('-'*30)#統(tǒng)計(jì)每項(xiàng)工資項(xiàng)目的最小值='統(tǒng)計(jì)工資項(xiàng)目最小值:'print(df.iloc[:,3:8].min())#等介于print(df.iloc[:,3:8].min(axis=0))print('-'*30)#統(tǒng)計(jì)每項(xiàng)工資項(xiàng)目的平均值='統(tǒng)計(jì)工資項(xiàng)目平均值:'print(df.iloc[:,3:8].mean())#等介于print(df.iloc[:,3:8].mean(axis=0))print('-'*30)示例10.2.4.(1)求工資項(xiàng)目的最大值、最小值及平均值●求最大值與最小值、平均值10.2.4DataFrame統(tǒng)計(jì)匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

1.='統(tǒng)計(jì)工資項(xiàng)目最大值:'修改輸出標(biāo)題2.統(tǒng)計(jì)數(shù)值型工資項(xiàng)目數(shù)據(jù)從第3列到第8列,列索引從0到7列,不包括第8列3.最大值Max()函數(shù)、最小值Min()函數(shù)、求和Sum()函數(shù)、平均值Mean()函數(shù)等計(jì)算,如按列進(jìn)行計(jì)算,則參數(shù)axis=0,默認(rèn)可省略,若按行計(jì)算則參數(shù)axis=1,必須指定。另外要注意,這些統(tǒng)計(jì)計(jì)算函數(shù)在計(jì)算時(shí),是對(duì)整個(gè)數(shù)據(jù)集的所有列或行都進(jìn)行計(jì)算,包括字符型列及行,所以有時(shí)會(huì)出現(xiàn)錯(cuò)誤。說明:●求最大值與最小值、平均值10.2.4DataFrame統(tǒng)計(jì)匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:統(tǒng)計(jì)工資項(xiàng)目最大值:基本工資6000.0津貼補(bǔ)貼9000.0應(yīng)發(fā)合計(jì)15000.0社保公積金3450.0實(shí)發(fā)合計(jì)11550.0dtype:float64------------------------------統(tǒng)計(jì)工資項(xiàng)目最小值:基本工資3500.0津貼補(bǔ)貼4500.0應(yīng)發(fā)合計(jì)8000.0社保公積金1840.0實(shí)發(fā)合計(jì)6160.0dtype:float64------------------------------統(tǒng)計(jì)工資項(xiàng)目平均值:基本工資4777.777778津貼補(bǔ)貼6611.111111應(yīng)發(fā)合計(jì)11388.888889社保公積金2619.444444實(shí)發(fā)合計(jì)8769.444444dtype:float64------------------------------10.2.4DataFrame統(tǒng)計(jì)匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

df.loc['合計(jì)']=df.iloc[:,3:8].sum()

print(df)示例10.2.4.(2)●求每項(xiàng)工資項(xiàng)目合計(jì)數(shù)10.2.4DataFrame統(tǒng)計(jì)匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

運(yùn)行結(jié)果如下:項(xiàng)目姓名部門職務(wù)基本工資津貼補(bǔ)貼應(yīng)發(fā)合計(jì)社保公積金實(shí)發(fā)合計(jì)序號(hào)0李文文財(cái)務(wù)部經(jīng)理5000.08000.013000.02990.010010.01張寶強(qiáng)財(cái)務(wù)部員工4500.05500.010000.02300.07700.02趙強(qiáng)財(cái)務(wù)部員工4800.06000.010800.02484.08316.03呂小雯銷售部經(jīng)理5500.08500.014000.03220.010780.04陳國中銷售部員工3500.04500.08000.01840.06160.05黃彩虹銷售部員工3800.05000.08800.02024.06776.06趙忠生產(chǎn)部經(jīng)理6000.09000.015000.03450.011550.07李發(fā)旺生產(chǎn)部員工5400.06000.011400.02622.08778.08王武生產(chǎn)部員工4500.07000.011500.02645.08855.0合計(jì)NaNNaNNaN43000.059500.0102500.023575.078925.010.2.4DataFrame統(tǒng)計(jì)匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

df1=df.groupby

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論