我們知道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ù)設置為1以放置列,0設置為行?!竔nplace=True」參數(shù)設置為True以保存更改。我們減了4列,因此列數(shù)從14個減少到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)建了一個包含csv文件前5000行的數(shù)據(jù)幀。還可以使用skiprows參數(shù)從文件末尾選擇行。Skiprows=5000表示我們將在讀取csv文件時跳過前5000行。
df_partial=pd.read_csv("Churn_Modelling.csv",nrows=5000)
print(df_partial.shape)
4.樣品
創(chuàng)建數(shù)據(jù)框后,我們可能需要一個小樣本來測試數(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:選擇帶標簽
·iloc:選擇索引
我們首先創(chuàng)建20個隨機索引進行選擇:
missing_index=np.random.randint(10000,size=20)
我們將使用loc將某些值更改為np.nan(缺失值)。
df.loc[missing_index,['Balance','Geography']]=np.nan
"Balance"和"Geography"列中缺少20個值。讓我們用iloc做另一個示例。
df.iloc[missing_index,-1]=np.nan
7.填充缺失值
fillna函數(shù)用于填充缺失的值。它提供了許多選項。我們可以使用特定值、聚合函數(shù)(例如均值)或上一個或下一個值。
avg=df['Balance'].mean()
df['Balance'].fillna(value=avg,inplace=True)
fillna函數(shù)的方法參數(shù)可用于根據(jù)列中的上一個或下一個值(例如方法="ffill")填充缺失值。它可以對順序數(shù)據(jù)(例如時間序列)非常有用。
8.刪除缺失值
處理缺失值的另一個方法是刪除它們。以下代碼將刪除具有任何缺失值的行。
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描述條件 條件可能有多個值。在這種情況下,最好使用isin方法,而不是單獨編寫值。 df[df['Tenure'].isin([4,6,9,10])][:3] 12.Groupby函數(shù) PandasGroupby函數(shù)是一個多功能且易于使用的功能,可幫助獲取數(shù)據(jù)概述。它使瀏覽數(shù)據(jù)集和揭示變量之間的基本關(guān)系更加容易。 我們將做幾個組比函數(shù)的示例。讓我們從簡單的開始。以下代碼將基于Geography、Gender組合對行進行分組,然后給出每個組的平均流。 df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).mean() 13.Groupby與聚合函數(shù)結(jié)合 agg函數(shù)允許在組上應用多個聚合函數(shù),函數(shù)的列表作為參數(shù)傳遞。 df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).agg(['mean','count']) 以上內(nèi)容為大家介紹了數(shù)據(jù)分析過程中最常使用的Python函數(shù)和方法,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。http://m.2667701.com/