最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

30?個?Python?函數(shù),加速數(shù)據(jù)分析處理速度

 更新時間:2021年12月26日 08:52:55   作者:遲業(yè)  
這篇文章主要介紹了30?個?Python?函數(shù),加速數(shù)據(jù)分析處理速度,Pandas?是?Python?中最廣泛使用的數(shù)據(jù)分析和操作庫。它提供了許多功能和方法,可以加快數(shù)據(jù)分析和預(yù)處理步驟,下面我們就一起來看看這些方法吧,需要的小伙伴可以參考一下,希望給你帶來幫助

前言:

Pandas Python 中最廣泛使用的數(shù)據(jù)分析和操作庫。它提供了許多功能和方法,可以加快 「數(shù)據(jù)分析」 和 「預(yù)處理」 步驟。

為了更好的學(xué)習(xí) Python,我將以客戶流失數(shù)據(jù)集為例,分享 「30」 個在數(shù)據(jù)分析過程中最常使用的函數(shù)和方法。

數(shù)據(jù)如下所示:

import numpy as np
import pandas as pd
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é)果輸出:

? Geography? Gender? Age? Tenure? Balance? NumOfProducts? HasCrCard?
0??? France? Female?? 42?????? 2????? 0.0????????????? 1????????? 1??

?? IsActiveMember? EstimatedSalary? Exited?
0?????????????? 1??????? 101348.88?????? 1?
(10000, 10)

說明:「axis」 參數(shù)設(shè)置為 1 以放置列,0 設(shè)置為行?!竔nplace=True」 參數(shù)設(shè)置為 True 以保存更改。我們減了 4 列,因此列數(shù)從 14 個減少到 10 列。

2.選擇特定列

我們從 csv 文件中讀取部分列數(shù)據(jù)??梢允褂?usecols 參數(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ù)。我們可以使用 nfrac 參數(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 個隨機索引進行選擇

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 < Balance < 100000')
# 讓我們通過繪制平衡列的直方圖來確認結(jié)果。
df2['Balance'].plot(kind='hist', figsize=(8,5))


11.用 isin 描述條件

條件可能有多個值。在這種情況下,最好使用 isin 方法,而不是單獨編寫值。

df[df['Tenure'].isin([4,6,9,10])][:3]


12.Groupby 函數(shù)

Pandas Groupby 函數(shù)是一個多功能且易于使用的功能,可幫助獲取數(shù)據(jù)概述。它使瀏覽數(shù)據(jù)集和揭示變量之間的基本關(guān)系更加容易。

我們將做幾個組比函數(shù)的示例。讓我們從簡單的開始。以下代碼將基于 Geography、Gender 組合對行進行分組,然后給出每個組的平均流失率。

df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).mean()


13.Groupby與聚合函數(shù)結(jié)合

agg 函數(shù)允許在組上應(yīng)用多個聚合函數(shù),函數(shù)的列表作為參數(shù)傳遞。

df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).agg(['mean','count'])


14.對不同的群體應(yīng)用不同的聚合函數(shù)

df_summary = df[['Geography','Exited','Balance']].groupby('Geography').agg({'Exited':'sum', 'Balance':'mean'})
df_summary.rename(columns={'Exited':'# of churned customers', 'Balance':'Average Balance of Customers'},inplace=True)


此外,「NamedAgg 函數(shù)」允許重命名聚合中的列

import pandas as pd
df_summary = df[['Geography','Exited','Balance']].groupby('Geography').agg(Number_of_churned_customers = pd.NamedAgg('Exited', 'sum'),Average_balance_of_customers = pd.NamedAgg('Balance', 'mean'))
print(df_summary)


15.重置索引

您是否已經(jīng)注意到上圖的數(shù)據(jù)格式了。我們可以通過重置索引來更改它。

print(df_summary.reset_index())


圖片

16.重置并刪除原索引

在某些情況下,我們需要重置索引并同時刪除原始索引。

df[['Geography','Exited','Balance']].sample(n=6).reset_index(drop=True)


17.將特定列設(shè)置為索引

我們可以將數(shù)據(jù)幀中的任何列設(shè)置為索引。

df_new.set_index('Geography')


18.插入新列

group = np.random.randint(10, size=6)
df_new['Group'] = group


19.where 函數(shù)

它用于根據(jù)條件替換行或列中的值。默認替換值為 NaN,但我們也可以指定要作為替換值。

df_new['Balance'] = df_new['Balance'].where(df_new['Group'] >= 6, 0)


20.等級函數(shù)

等級函數(shù)為值分配一個排名。讓我們創(chuàng)建一個列,根據(jù)客戶的余額對客戶進行排名。

df_new['rank'] = df_new['Balance'].rank(method='first', ascending=False).astype('int')


21.列中的唯一值數(shù)

它使用分類變量時派上用場。我們可能需要檢查唯一類別的數(shù)量。我們可以檢查值計數(shù)函數(shù)返回的序列的大小或使用 nunique 函數(shù)。

df.Geography.nunique


22.內(nèi)存使用情況

使用函數(shù) memory_usage,這些值顯示以字節(jié)為單位的內(nèi)存.

df.memory_usage()


23.數(shù)據(jù)類型轉(zhuǎn)換

默認情況下,分類數(shù)據(jù)與對象數(shù)據(jù)類型一起存儲。但是,它可能會導(dǎo)致不必要的內(nèi)存使用,尤其是當(dāng)分類變量具有較低的基數(shù)。

低基數(shù)意味著列與行數(shù)相比幾乎沒有唯一值。例如,地理列具有 3 個唯一值和 10000 行。

我們可以通過將其數(shù)據(jù)類型更改為"類別"來節(jié)省內(nèi)存。

df['Geography'] = df['Geography'].astype('category')


24.替換值

替換函數(shù)可用于替換數(shù)據(jù)幀中的值。

df['Geography'].replace({0:'B1',1:'B2'})


25.繪制直方圖

pandas 不是一個數(shù)據(jù)可視化庫,但它使得創(chuàng)建基本繪圖變得非常簡單。

我發(fā)現(xiàn)使用 Pandas 創(chuàng)建基本繪圖更容易,而不是使用其他數(shù)據(jù)可視化庫。

讓我們創(chuàng)建平衡列的直方圖。

26.減少浮點數(shù)小數(shù)點

pandas 可能會為浮點數(shù)顯示過多的小數(shù)點。我們可以輕松地調(diào)整它。

df['Balance'].plot(kind='hist', figsize=(10,6), 
title='Customer Balance')


27.更改顯示選項

我們可以更改各種參數(shù)的默認顯示選項,而不是每次手動調(diào)整顯示選項。

  • get_option:返回當(dāng)前選項
  • set_option:更改選項 讓我們將小數(shù)點的顯示選項更改為 2。
pd.set_option("display.precision", 2)


可能要更改的一些其他選項包括:

  • max_colwidth:列中顯示的最大字符數(shù)
  • max_columns:要顯示的最大列數(shù)
  • max_rows:要顯示的最大行數(shù)

28.通過列計算百分比變化

pct_change用于計算序列中值的變化百分比。在計算時間序列或元素順序數(shù)組中更改的百分比時,它很有用。

ser= pd.Series([2,4,5,6,72,4,6,72])
ser.pct_change()


29.基于字符串的篩選

我們可能需要根據(jù)文本數(shù)據(jù)(如客戶名稱)篩選觀測值(行)。我已經(jīng)在數(shù)據(jù)幀中添加了df_new名稱。

df_new[df_new.Names.str.startswith('Mi')]


30.設(shè)置數(shù)據(jù)幀樣式

我們可以通過使用返回 Style 對象的 Style 屬性來實現(xiàn)此目的,它提供了許多用于格式化和顯示數(shù)據(jù)框的選項。例如,我們可以突出顯示最小值或最大值。

它還允許應(yīng)用自定義樣式函數(shù)。

df_new.style.highlight_max(axis=0, color='darkgreen')


到此這篇關(guān)于30 個 Python 函數(shù),加速數(shù)據(jù)分析處理速度的文章就介紹到這了,更多相關(guān)Python 函數(shù),加速數(shù)據(jù)分析處理速度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python處理json字符串中的非法雙引號問題

    使用Python處理json字符串中的非法雙引號問題

    這篇文章主要介紹了使用Python處理json字符串中的非法雙引號問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Windows和Linux下Python輸出彩色文字的方法教程

    Windows和Linux下Python輸出彩色文字的方法教程

    這篇文章主要介紹了在Windows和Linux中Python輸出彩色文字的方法,通過設(shè)置彩色文字給大家更醒目的效果,文中給出了詳細的介紹和示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • Python異步編程中asyncio.gather的并發(fā)控制詳解

    Python異步編程中asyncio.gather的并發(fā)控制詳解

    在Python異步編程生態(tài)中,asyncio.gather是并發(fā)任務(wù)調(diào)度的核心工具,本文將通過實際場景和代碼示例,展示如何結(jié)合信號量機制實現(xiàn)精準并發(fā)控制,希望對大家有所幫助
    2025-03-03
  • 解讀! Python在人工智能中的作用

    解讀! Python在人工智能中的作用

    這篇文章主要幫助大家解讀Python在人工智能中的作用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python看某個模塊的版本方法

    python看某個模塊的版本方法

    今天小編就為大家分享一篇python看某個模塊的版本方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 利用Python裁切tiff圖像且讀取tiff,shp文件的實例

    利用Python裁切tiff圖像且讀取tiff,shp文件的實例

    這篇文章主要介紹了利用Python裁切tiff圖像且讀取tiff,shp文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python使用jupyter notebook查看ipynb文件過程解析

    Python使用jupyter notebook查看ipynb文件過程解析

    這篇文章主要介紹了Python使用jupyter notebook查看ipynb文件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python 通過URL打開圖片實例詳解

    Python 通過URL打開圖片實例詳解

    這篇文章主要介紹了Python 通過URL打開圖片實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Python運算符&=使用實例探究

    Python運算符&=使用實例探究

    這篇文章主要為大家介紹了Python運算符&=使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 詳解Python中的type()方法的使用

    詳解Python中的type()方法的使用

    這篇文章主要介紹了詳解Python中的type()方法的使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論

顺平县| 黄梅县| 易门县| 乐平市| 甘德县| 师宗县| 彩票| 靖边县| 金门县| 安化县| 武功县| 永嘉县| 平阴县| 乐山市| 乌什县| 高阳县| 楚雄市| 定西市| 志丹县| 屏边| 城步| 民丰县| 西安市| 蒙自县| 岑巩县| 石棉县| 黄冈市| 团风县| 保亭| 乐东| 襄樊市| 阜南县| 庆安县| 科技| 宕昌县| 莱阳市| 德安县| 肃宁县| 吴旗县| 五大连池市| 自治县|