當前位置:成語大全網 - 書法字典 - Pandas分組條件統計詞典

Pandas分組條件統計詞典

幹凈整潔的數據是後續研究和分析的基礎。數據科學家將花費大量時間清理數據集。毫不誇張地說,數據清理將占用他們80%的工作時間,而真正用於分析數據的時間僅占20%左右。

那麽,數據清洗到底是什麽?

壹般來說,您獲取的原始數據不能直接用於分析,因為它們會存在各種問題,如無效信息、列名不規範、格式不壹致、重復值、缺失值、異常值等。.....

本文將介紹使用Python附帶的Pandas和NumPy庫清理數據的壹些實用技巧。

這是讀取數據的入門級命令。在分析數據集時,實際上並不需要很多信息。因此,需要刪除不必要的行或列。以csv文件為例,在導入時設置pd.read_csv()中的參數即可實現這壹目的。

我們先來感受壹下官方文件中給出的詳細解釋。裏面有相當多的參數。本文只介紹幾種常用的。如果妳感興趣,妳可以好好研究壹下這個文件。這些參數仍然非常易於使用,並且在導入後可以節省大量工作。

當原始數據的列名不容易理解或不夠簡潔時,可以使用。rename()方法來修改它們。這裏我們將英文列名改為中文,首先創建壹個字典,定義要修改的列名,然後調用rename()方法。

數據的默認索引是從0開始的有序整數,但是如果要將列設置為新索引,可以使用read_csv()中的參數index_col和的方法。集索引()。

此外,如果數據被刪除或重組,我們可以重置索引,使索引從0開始依次排序。

字符串str操作非常實用,因為列中總是包含不必要的字符,常用的方法如下:

Str.lower()將大寫轉換為小寫,同樣地,str.upper()將小寫轉換為大寫,並將示例中由大寫字母表示的索引轉換為小寫。

設置初始大寫

str . replace(“a“,““)替換特定字符。這裏,列中的A被刪除並替換為空白字符。

從字符串中刪除前導空格和尾隨空格。

str . split(‘x‘)使用字符串中的‘x‘字符作為分隔符將字符串分隔成壹個列表。這裏,列中的值除以“。”。

Str.get()選擇列表中某個位置的值。然後,我們使用str . get(0)取出列表中前壹個位置的值並生成壹個新列。

Str.contains()確定字符是否存在,並返回壹個布爾值。

str . find(“-“)檢測字符串是否包含“-“,如果是,則返回子字符串起始位置的索引值;如果不是,則返回-1。

學習完字符串操作的基本方法後,我們再來看看如何結合NumPy來提高字符串操作的效率。

我們可以結合。Pandas中的str()方法和NumPy的np.where函數。np.where函數是Excel的IF()宏的矢量化形式,其語法如下:

如果條件條件為真,則執行,否則執行。這裏的條件可以是類數組的對象,也可以是布爾表達式,我們還可以使用np.where函數嵌套多個條件進行矢量化計算和判斷。

接下來,我們需要整理列中的字符串。除了循環和。str()方法,我們也可以選擇使用applymap()方法,該方法將作用於整個DataFrame的所有行和列中的每個元素。

首先定義函數get _ city state(item),它的作用是只提取元素中的有效信息。然後,我們將此函數傳遞到applymap()中,並將其應用於df3。看起來是不是幹凈多了?結果如下:

如果妳沒有聽說過它,我不能強調它的重要性。輸入以下命令:

妳會發現df1發生了變化。這是因為df2 = df1不會生成df1的副本並將其分配給df2,而是設置壹個指向df1的指針。所以只要是針對df2的變化,也會相應作用於df1。為了解決這個問題,您可以這樣做:

您也可以這樣做:

該命令用於檢查值的分布。您想要檢查“C”列中的值以及每個值的頻率,可以使用:

以下是壹些有用的提示/參數:

Lsin()用於過濾數據幀。Isin()有助於選擇特定列中具有特定(或多個)值的行。

在SQL中,我們可以使用select * from...其中ID in(‘a 001‘,c022,...)來獲取具有指定id的記錄。如果妳想在Pandas中做類似的事情,妳可以使用:

select_dtypes()的功能是基於dtypes返回數據框列的子集。此函數的參數可以設置為包括具有特定數據類型的所有列,或者排除具有特定數據類型的列。

Pivot_table()在Pandas中也是壹個非常有用的函數。如果您了解excel中pivot_table()的使用方法,那麽入門將非常容易。

如果需要計算樣本缺失率的分布,只需添加參數axis=1。

有兩種類型的分組:重復值和非重復值。沒有重復值的情況下。

首先,按Mt列分組,然後使用idxmax函數取出分組數據框的最大計數所在的列,然後使用iloc位置索引取出行。有重復的值。

將id分組後,對分數應用等級函數。如果分數相同,則給予相同的排名,然後取出排名為1的數據。

本文介紹了兩種有效的組內排序方法。

以這種方式轉換第三列將導致錯誤,因為該列包含代表0的下劃線,而pandas無法自動判斷該下劃線。要解決這個問題,您可以使用to_numeric()函數來處理第三列,並讓pandas將任何無效輸入轉換為NaN。

df = df . apply(PD . to _ numeric,errors =‘concert‘)。菲爾納(0)

方法1:只讀取真正需要的列,並使用usecols參數。

方法二:將包含類別數據的對象列轉換為類別數據類型,通過指定dtype參數來實現。

希望本文的內容能給妳的學習或工作帶來壹些幫助,每天進步壹點點。加油~