您好,登錄后才能下訂單哦!
這篇文章主要介紹了Pandas的使用技巧有哪些的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Pandas的使用技巧有哪些文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
Pandas是一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集;它的使用基礎(chǔ)是Numpy(提供高性能的矩陣運(yùn)算);用于數(shù)據(jù)挖掘和數(shù)據(jù)分析,同時(shí)也提供數(shù)據(jù)清洗功能。
首先,數(shù)據(jù)探索是必要步驟。Pandas為進(jìn)行各種分析提供了一種快速簡(jiǎn)便的方法。其中一個(gè)非常重要的技巧是根據(jù)條件選擇行或過(guò)濾數(shù)據(jù)。
行的條件選擇可以基于由邏輯運(yùn)算符分隔的單個(gè)語(yǔ)句中的單個(gè)條件或多個(gè)條件。
例如,我使用一個(gè)關(guān)于貸款預(yù)測(cè)的數(shù)據(jù)集。
我們將挑選一排還沒(méi)有畢業(yè)、收入低于5400英鎊的客戶。讓我們看看我們?cè)撛趺醋觥?/p>
import pandas as pd data = pd.read_csv('../Data/loan_train.csv') data.head() data2 = data.loc[(data['Education'] == 'Not Graduate') & (data['ApplicantIncome']
注意:記住把每個(gè)條件放在括號(hào)內(nèi)。
數(shù)據(jù)可以有兩種類型-連續(xù)的和離散的,這取決于我們的分析要求。有時(shí)我們不需要連續(xù)變量中的精確值,但需要它所屬的群體。
例如,你的數(shù)據(jù)中有一個(gè)連續(xù)變量,年齡。但你需要一個(gè)年齡組來(lái)進(jìn)行分析,比如兒童、青少年、成人、老年人。實(shí)際上,Binning非常適合解決我們這里的問(wèn)題。
為了執(zhí)行Binning,我們使用cut()函數(shù)。這對(duì)于從連續(xù)變量到離散變量非常有用。
import pandas as pd df = pd.read_csv('titanic.csv') from sklearn.utils import shuffle# 隨機(jī)化df = shuffle(df, random_state = 42) df.head() bins = [0,4,17,65,99] labels =['Toddler','Child','Adult','Elderly'] category = pd.cut(df['Age'], bins = bins, labels = labels) df.insert(2, 'Age Group', category) df.head() df['Age Group'].value_counts() df.isnull().sum()
這種操作在數(shù)據(jù)科學(xué)家和分析師的日常生活中經(jīng)常執(zhí)行。Pandas提供了一個(gè)基本的函數(shù)來(lái)執(zhí)行數(shù)據(jù)分組,即Groupby。
Groupby操作包括根據(jù)特定條件拆分對(duì)象,應(yīng)用函數(shù),然后組合結(jié)果。
讓我們?cè)倏匆淮钨J款預(yù)測(cè)數(shù)據(jù)集,假設(shè)我想看看給來(lái)自不同財(cái)產(chǎn)領(lǐng)域的人的平均貸款額,比如農(nóng)村、半城市和城市?;c(diǎn)時(shí)間來(lái)理解這個(gè)問(wèn)題陳述并思考如何解決它。
嗯,Pandas的groupby可以非常有效地解決這個(gè)問(wèn)題。首先根據(jù)屬性區(qū)域劃分?jǐn)?shù)據(jù)。其次,我們將mean()函數(shù)應(yīng)用于每個(gè)類別。最后,我們將它們組合在一起,并將其打印為新的數(shù)據(jù)幀。
視頻:https://youtu.be/fK-6ZlPvZYU
#導(dǎo)入數(shù)據(jù)集import pandas as pd df = pd.read_csv('../Data/loan_train.csv') df.head()# 男女平均收入df.groupby(['Gender'])[['ApplicantIncome']].mean()# 平均貸款金額不同的財(cái)產(chǎn)地區(qū),如城市,農(nóng)村df.groupby(['Property_Area'])[['LoanAmount']].mean()# 比較不同教育背景的貸款狀況df.groupby(['Education'])[['Loan_Status']].count()
map是另一個(gè)提供高度靈活性和實(shí)際應(yīng)用的重要操作。
Pandas map()用于根據(jù)輸入對(duì)應(yīng)關(guān)系將序列中的每個(gè)值映射到其他值。實(shí)際上,這個(gè)輸入可以是一個(gè)序列、字典,甚至是一個(gè)函數(shù)。
讓我們舉一個(gè)有趣的例子。我們有一個(gè)虛擬的雇員數(shù)據(jù)集。此數(shù)據(jù)集由以下列組成–姓名、年齡、職業(yè)、城市。
現(xiàn)在需要添加另一列,說(shuō)明相應(yīng)的狀態(tài)。你會(huì)怎么做?如果數(shù)據(jù)集的范圍是10行,你可以手動(dòng)執(zhí)行,但是如果有數(shù)千行呢?使用Pandas map會(huì)更有利。
#樣本數(shù)據(jù)data = {'name': ['A', 'B', 'C', 'D', 'E'], 'age': [22, 26, 33, 44, 50], 'profession' : ['data engineer', 'data scientist', 'entrepreneur', 'business analyst', 'self-employed'], 'city': ['Gurgaon', 'Bangalore', 'Gurgaon', 'Pune', 'New Delhi']} df = pd.DataFrame(data) df# 城市與州map_city_to_states = { 'Gurgaon' : 'Haryana', 'Bangalore' : 'Karnataka', 'Pune' : 'Maharashtra', 'New Delhi' : 'Delhi'}# 將城市列映射為州df['state'] = df['city'].map(map_city_to_states) df
這是我最喜歡的Pandas技巧之一。這個(gè)技巧讓我有能力直觀地定位特定條件下的數(shù)據(jù)。
可以使用Pandas的style屬性將條件格式應(yīng)用于數(shù)據(jù)框。事實(shí)上,條件格式是根據(jù)某種條件對(duì)數(shù)據(jù)幀應(yīng)用視覺(jué)樣式的操作。
雖然Pandas提供了大量的操作,但我將在這里向你展示一個(gè)簡(jiǎn)單的操作。例如,我們有對(duì)應(yīng)于每個(gè)銷售人員的銷售數(shù)據(jù)。我想查看的是銷售價(jià)值高于80的。
import pandas as pd data = pd.read_excel("../Data/salesman_performance.xlsx") data data.style def highlight_green(sales): color = 'green' if sales > 80 else 'black' return 'color: %s' % color formatting = data.iloc[:,1:6].style.applymap(highlight_green) formatting
關(guān)于“Pandas的使用技巧有哪些”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Pandas的使用技巧有哪些”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。