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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

Numpy(提供高性能的矩陣運算)。10.1初識pandas

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

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

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

Pandas廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計學(xué)等各個數(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)計匯總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),相當于Excel表格中的一列,能夠保存任何數(shù)據(jù)類型(整數(shù)、浮點數(shù)、字符串等)。Series由一組(列)數(shù)據(jù)及與之相關(guān)的索引(相當于Excel中的行號)組成,每個數(shù)據(jù)帶有一個自動索引(默認從0開始遞增),也可以自定義索引(行號)名稱,用于對數(shù)據(jù)進行說明。10.2pandas數(shù)據(jù)結(jié)構(gòu)

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

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

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)建對象x

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

運行結(jié)果如下:010001200023000340004500056000dtype:int64在輸出結(jié)果中第一列為自動創(chuàng)建的索引(行號),如果沒有指定索引,默認從0開始遞增。第二列為數(shù)據(jù),相當于給對象x的每一個數(shù)據(jù)增加了一個索引名(行號),構(gòu)成一個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對象

importpandasaspd

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

print(x)注釋:

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

運行結(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)建對象

importpandasaspd

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

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

運行結(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對象基本操作●獲取索引及修改索引●增加數(shù)據(jù)●指定索引對應(yīng)數(shù)據(jù)刪除●指定索引對應(yīng)元素的獲取●通過條件篩選獲取數(shù)據(jù)●通過條件篩選獲取數(shù)據(jù)●統(tǒng)計信息●有條件的運算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對象索引

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

#修改X對象索引名稱

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

#輸出修改后的索引名稱

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

運行結(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)#增加兩個數(shù)據(jù)

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

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

print(x)

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

運行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額60001-6月合計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對象基本操作示例(3)●刪除指定索引對應(yīng)數(shù)據(jù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:1月份銷售額10002月份銷售額20003月份銷售額30004月份銷售額40005月份銷售額50006月份銷售額60001-6月合計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對象基本操作示例(4)●指定索引對應(yīng)元素的獲取10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(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對象基本操作示例(5)●通過條件篩選獲取數(shù)據(jù)10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(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對象基本操作示例(6)●指定索引對應(yīng)元素的修改10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(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對象基本操作示例(7)●統(tǒng)計信息10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(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)

也可以通過如下方法分別獲?。簃in():獲取最小值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對象基本操作示例(8)●有條件的運算10.2.1Series數(shù)據(jù)結(jié)構(gòu)10.2pandas數(shù)據(jù)結(jié)構(gòu)

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

【技能實訓(xùn)】

用字典創(chuàng)建五門課程的名稱及成績,并用describe()函數(shù)進行分析統(tǒng)計,結(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)

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

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

#平均分std7.96

#課程標準差min70.00

#最低分數(shù)25%75.00

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

#75%分位是85分max90.00

#最高分數(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中的一個表格型的數(shù)據(jù)結(jié)構(gòu),包含有一組有序的列,類似于Excel、SQL表,每列可以是不同的值類型(數(shù)值、字符串、布爾型等),DataFrame即有行索引(行名稱、標簽)也有列索引(列名稱、標簽),可以被看做是由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:索引值,或者可以稱為行標簽。

columns:列標簽,默認為RangeIndex(0,1,2,…,n)。

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

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

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

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

#導(dǎo)入Pandasimportpandasaspd#創(chuàng)建工資明細表二維表Gz=[['李文文','財務(wù)部','經(jīng)理',5000,8000],['張寶強','財務(wù)部','員工',4500,5500],['趙強','財務(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)

運行結(jié)果如下:

01

2

3

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

財務(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ù)','基本工資','津貼補貼']#增加索引(行,序號),從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)

運行結(jié)果如下:

姓名部門

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

財務(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={'姓名':['李文文','張寶強','趙強','呂小雯','陳國中','黃彩虹','趙忠','李發(fā)旺','王武'],'部門':['財務(wù)部','財務(wù)部','財務(wù)部','銷售部','銷售部','銷售部','生產(chǎn)部','生產(chǎn)部','生產(chǎn)部'],'職務(wù)':['經(jīng)理','員工','員工','經(jīng)理','員工','員工','經(jīng)理','員工','員工'],'基本工資':[5000,4500,4800,5500,3500,3800,6000,5400,4500],'津貼補貼':[8000,5500,6000,8500,4500,5000,9000,6000,7000]}df=pd.DataFrame(Gz)#修改索引名(序號)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)

運行結(jié)果如下:

姓名

部門

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

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

運行結(jié)果如下:

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

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

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

運行結(jié)果如下:

項目姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計序號1李文文財務(wù)部經(jīng)理50008000130002990.010010.02張寶強財務(wù)部員工45005500100002300.07700.03趙強

財務(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/工資明細表.xlsx")第二種方法:使用雙反斜杠”/”df.to_excel("C:\\Users\\Administrator\\工資明細表.xlsx")第三種方法:在前面加r,保持字符原始值●工資表保存與讀取10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

df.to_excel(r"C:\Users\Administrator\工資明細表.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/工資明細表.xlsx")知識拓展:

#顯示所有列

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

#顯示所有行

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

#設(shè)置value的顯示長度為100,默認為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)

運行結(jié)果如下:序號1李文文2張寶強3趙強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ā)合計']])示例10.2.3(5)●多列輸出10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:

項目姓名職務(wù)部門應(yīng)發(fā)合計序號1李文文經(jīng)理財務(wù)部130002張寶強員工財務(wù)部100003趙強員工財務(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ā)合計']>10000])示例10.2.3(6)查詢應(yīng)發(fā)合計大于10000的員工●查詢過濾10.2.3DataFrame數(shù)據(jù)操作●按條件查詢,顯示所有列10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:項目姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計序號1李文文財務(wù)部經(jīng)理50008000130002990.010010.03趙強財務(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ā)合計大于10000的記錄10.2pandas數(shù)據(jù)結(jié)構(gòu)

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

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

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

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

顯示部分列用[[“”,””….]]表示,如上題顯示部門、應(yīng)發(fā)合計用df[['部門','應(yīng)發(fā)合計']]表示;有條件顯示部分列,在其后面加上[條件表達式],如上題查詢應(yīng)發(fā)合計最大的部門,用[df['應(yīng)發(fā)合計']==df['應(yīng)發(fā)合計'].max()])表示。print(df[(df['職務(wù)']=='經(jīng)理')&(df['應(yīng)發(fā)合計']>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)

運行結(jié)果如下:項目姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計序號1李文文財務(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['姓名']=='趙強'])示例10.2.3(10)查詢姓名為“趙強”的員工●精準查詢10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:項目姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計序號3趙強財務(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ā)合計']>13000)])示例10.2.3(11)查詢職務(wù)為經(jīng)理并且應(yīng)發(fā)合計大于13000元的員工●多條件查詢10.2.3DataFrame數(shù)據(jù)操作

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

運行結(jié)果如下:姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計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ā)合計']][(df['職務(wù)']=='經(jīng)理')&(df['應(yīng)發(fā)合計']>13000)])示例10.2.3(12)可改成只顯示姓名、部門、職務(wù)、應(yīng)發(fā)合計●多條件查詢10.2.3DataFrame數(shù)據(jù)操作10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:姓名部門職務(wù)應(yīng)發(fā)合計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)

運行結(jié)果如下:

Index(['姓名','部門','職務(wù)','基本工資','津貼補貼','應(yīng)發(fā)合計','社保公積金','實發(fā)合計'],dtype='object',name='項目')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)

運行結(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)計信息10.2pandas數(shù)據(jù)結(jié)構(gòu)

運行結(jié)果如下:項目基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計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)計每列元素個數(shù),每一行代表一個記錄,也表示記錄數(shù);

Mean:每個工資項目的平均值;

Std:每個工資項目的標準差;

Min:每個工資項目的最小值;

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

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

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

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

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

趙強位置在第序號姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計01李文文財務(wù)部經(jīng)理500080001300029901001012張寶強財務(wù)部員工45005500100002300770023趙強財務(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ā)合計']])示例10.2.3(17)如要找出一個區(qū)域,比如查詢銷售部、姓名、部門、職務(wù)、應(yīng)發(fā)合計:●DataFrame的屬性和方法10.2.3DataFrame數(shù)據(jù)操作●使用loc方法和iloc方法10.2pandas數(shù)據(jù)結(jié)構(gòu)

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

因為要查詢銷售部的數(shù)據(jù),銷售部行索引為4-6,列名為姓名、部門、職務(wù)、應(yīng)發(fā)合計,行列標簽之間用逗號隔開,行標簽與行標簽之間用冒號隔開。無論選擇單行還是多行或單列多列,本質(zhì)還是a[x,y]的表示形式,其中X或y可以省略。iloc[]與loc[]一樣,中括號里面也是先行后列,行列標簽用逗號分割,與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列。【示例10.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)

運行結(jié)果如下:序號1234...6789項目...姓名李文文張寶強趙強呂小雯...黃彩虹趙忠李發(fā)旺王武部門財務(wù)部財務(wù)部財務(wù)部銷售部...銷售部生產(chǎn)部生產(chǎn)部生產(chǎn)部職務(wù)經(jīng)理員工員工經(jīng)理...員工經(jīng)理員工員工基本工資5000450048005500...3800600054004500津貼補貼8000550060008500...5000900060007000應(yīng)發(fā)合計13000100001080014000...8800150001140011500社保公積金2990.02300.02484.03220.0...2024.03450.02622.02645.0實發(fā)合計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為默認值,是指按照index(索引)對數(shù)據(jù)進行降序,如果axis=1,是指按照index(索引)對數(shù)據(jù)進行升序;df.sort_index(axis=0,ascending=False)

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

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

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

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

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

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

【技能實訓(xùn)】

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

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

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

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

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

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

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

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

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

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

運行結(jié)果如下:項目姓名部門職務(wù)基本工資津貼補貼應(yīng)發(fā)合計社保公積金實發(fā)合計序號0李文文財務(wù)部經(jīng)理5000.08000.013000.02990.010010.01張寶強財務(wù)部員工4500.05500.010000.02300.07700.02趙強財務(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合計NaNNaNNaN43000.059500.0102500.023575.078925.010.2.4DataFrame統(tǒng)計匯總10.2pandas數(shù)據(jù)結(jié)構(gòu)

df1=df.groupby

溫馨提示

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

最新文檔

評論

0/150

提交評論