分享在數(shù)據(jù)分析過程中最常使用的Python函數(shù)和方法
我們知道Pandas是Python中最廣泛使用的數(shù)據(jù)分析和操作庫。它提供了許多功能和方法,可以快速解決數(shù)據(jù)分析中數(shù)據(jù)處理問題。
為了更好的掌握Python函數(shù)的使用方法,我以客戶流失數(shù)據(jù)集為例,分享在數(shù)據(jù)分析過程中最常使用的函數(shù)和方法。
數(shù)據(jù)如下所示:
importnumpyasnp
importpandasaspd
df=pd.read_csv("Churn_Modelling.csv")
print(df.shape)
df.columns
結(jié)果輸出:
(10000,14)
Index(['RowNumber','CustomerId','Surname','CreditScore','Geography','Gender','Age','Tenure','Balance','NumOfProducts','HasCrCard','IsActiveMember','EstimatedSalary','Exited'],dtype='object')
1.刪除列
df.drop(['RowNumber','CustomerId','Surname','CreditScore'],axis=1,inplace=True)
print(df[:2])
print(df.shape)
結(jié)果輸出:
說明:「axis」參數(shù)設(shè)置為1以放置列,0設(shè)置為行?!竔nplace=True」參數(shù)設(shè)置為True以保存更改。我們減了4列,因此列數(shù)從14個(gè)減少到10列。
GeographyGenderAgeTenureBalanceNumOfProductsHasCrCard\
0FranceFemale4220.011
IsActiveMemberEstimatedSalaryExited
01101348.881
(10000,10)
2.選擇特定列
我們從csv文件中讀取部分列數(shù)據(jù)??梢允褂胾secols參數(shù)。
df_spec=pd.read_csv("Churn_Modelling.csv",usecols=['Gender','Age','Tenure','Balance'])
df_spec.head()
3.nrows
可以使用nrows參數(shù),創(chuàng)建了一個(gè)包含csv文件前5000行的數(shù)據(jù)幀。還可以使用skiprows參數(shù)從文件末尾選擇行。Skiprows=5000表示我們將在讀取csv文件時(shí)跳過前5000行。
df_partial=pd.read_csv("Churn_Modelling.csv",nrows=5000)
print(df_partial.shape)
4.樣品
創(chuàng)建數(shù)據(jù)框后,我們可能需要一個(gè)小樣本來測試數(shù)據(jù)。我們可以使用n或frac參數(shù)來確定樣本大小。
df=pd.read_csv("Churn_Modelling.csv",usecols=['Gender','Age','Tenure','Balance'])
df_sample=df.sample(n=1000)
df_sample2=df.sample(frac=0.1)
5.檢查缺失值
isna函數(shù)確定數(shù)據(jù)幀中缺失的值。通過將isna與sum函數(shù)一起使用,我們可以看到每列中缺失值的數(shù)量。
df.isna().sum()
6.使用loc和iloc添加缺失值
使用loc和iloc添加缺失值,兩者區(qū)別如下:
·loc:選擇帶標(biāo)簽
·iloc:選擇索引
我們首先創(chuàng)建20個(gè)隨機(jī)索引進(jìn)行選擇:
missing_index=np.random.randint(10000,size=20)
我們將使用loc將某些值更改為np.nan(缺失值)。
df.loc[missing_index,['Balance','Geography']]=np.nan
"Balance"和"Geography"列中缺少20個(gè)值。讓我們用iloc做另一個(gè)示例。
df.iloc[missing_index,-1]=np.nan
7.填充缺失值
fillna函數(shù)用于填充缺失的值。它提供了許多選項(xiàng)。我們可以使用特定值、聚合函數(shù)(例如均值)或上一個(gè)或下一個(gè)值。
avg=df['Balance'].mean()
df['Balance'].fillna(value=avg,inplace=True)
fillna函數(shù)的方法參數(shù)可用于根據(jù)列中的上一個(gè)或下一個(gè)值(例如方法="ffill")填充缺失值。它可以對順序數(shù)據(jù)(例如時(shí)間序列)非常有用。
8.刪除缺失值
處理缺失值的另一個(gè)方法是刪除它們。以下代碼將刪除具有任何缺失值的行。
df.dropna(axis=0,how='any',inplace=True)
9.根據(jù)條件選擇行
在某些情況下,我們需要適合某些條件的觀測值(即行)。
france_churn=df[(df.Geography=='France')&(df.Exited==1)]
france_churn.Geography.value_counts()
10.用查詢描述條件
查詢函數(shù)提供了一種更靈活的傳遞條件的方法。我們可以用字符串來描述它們。
df2=df.query('80000 df2=df.query('80000 df2=df.query('80000 11.用isin描述條件 條件可能有多個(gè)值。在這種情況下,最好使用isin方法,而不是單獨(dú)編寫值。 df[df['Tenure'].isin([4,6,9,10])][:3] 12.Groupby函數(shù) PandasGroupby函數(shù)是一個(gè)多功能且易于使用的功能,可幫助獲取數(shù)據(jù)概述。它使瀏覽數(shù)據(jù)集和揭示變量之間的基本關(guān)系更加容易。 我們將做幾個(gè)組比函數(shù)的示例。讓我們從簡單的開始。以下代碼將基于Geography、Gender組合對行進(jìn)行分組,然后給出每個(gè)組的平均流。 df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).mean() 13.Groupby與聚合函數(shù)結(jié)合 agg函數(shù)允許在組上應(yīng)用多個(gè)聚合函數(shù),函數(shù)的列表作為參數(shù)傳遞。 df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).agg(['mean','count']) 以上內(nèi)容為大家介紹了數(shù)據(jù)分析過程中最常使用的Python函數(shù)和方法,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.mobiletrain.org/

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
python中的filter函數(shù)功能是什么?
python中的filter函數(shù)功能是什么?在python中,面對眾多的數(shù)據(jù),我們要過濾篩選出我們需要的數(shù)據(jù)。python中的filter函數(shù)就是起到了過濾篩選的作...詳情>>
2023-11-10 20:37:27
pythontime模塊是什么
pythontime模塊是什么在python中使用時(shí)間,就免不了和time模塊打交道,另外兩個(gè)模塊這個(gè)暫時(shí)先不做介紹。做time模塊的使用上,我們可以用它來對...詳情>>
2023-11-10 15:53:16
python是什么編程語言
python是什么編程語言1、說明是一種面向?qū)ο?、解釋型?jì)算機(jī)程序設(shè)計(jì)語言,由GuidovanRossum于1989年底發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于1991年。Pyt...詳情>>
2023-11-10 15:21:05
python異常處理的兩種技巧
python異常處理的兩種技巧1、傳遞異常有時(shí)我們會(huì)在捕捉到一個(gè)異常后重新引發(fā)它(傳遞異常),實(shí)現(xiàn)起來很簡單,使用不帶參數(shù)的raise語句即可。deff...詳情>>
2023-11-10 14:49:39熱門推薦
python中的filter函數(shù)功能是什么?
沸python delattr函數(shù)如何使用?
熱python中pdb模塊怎么用?
熱Python如何截圖保存?
新python?中缺少module怎么辦?
python strftime和strptime的不同分析
python time.strptime的格式化
python中@contextmanager是什么?
python對象的三要素是什么
pythonGIL在Python多線程的應(yīng)用
python如何對多個(gè)CSV文件進(jìn)行讀取
pythonif嵌套命令如何理解?
python對列表進(jìn)行永久性或臨時(shí)排序的方法
python生成器調(diào)用方法引發(fā)異常
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價(jià)格 -
優(yōu)惠活動(dòng)
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊(duì)
了解師資團(tuán)隊(duì) -
實(shí)戰(zhàn)項(xiàng)目
獲取項(xiàng)目源碼 -
開班地區(qū)
查看來校路線