pandas進行資料整理的意義在于,它是資料分析、資料科學和機器學習的前置步驟,
通過資料整理可以提前了解資料的概要,缺失值、重復值等情況,為后續的分析和建模提供更為可靠的資料基礎,
本篇主要介紹利用pandas進行資料整理的各種方法,
1. 資料概要
獲取資料概要資訊可以幫助我們了解資料的基本情況,包括資料的大小、資料型別、缺失值的情況、資料的分布情況等,
這些資訊對于我們進行資料分析、資料處理和建模等作業非常重要,
獲取資料概要資訊是進行資料分析和處理的基礎,也是保障資料分析和建模結果準確性的重要步驟,
測驗資料匯入:
import pandas as pd
fp = "http://databook.top:8888/pandas/cn-people.csv"
df = pd.read_csv(fp)
df

1.1 dtypes 資料型別
查看資料型別:
df.dtypes

資料集中4個列的型別如上所示,
1.2 describe 數值列統計
選取數值列value,統計其情況看看:
df.value.describe()
# df["value"].describe()

統計的內容包括:總數、平均數、標準差、最小值、最大值等等,
1.3 value_counts 各類資料的數量
比如,統計指標中文這列,看看不同的指標對應的資料量,
df["指標中文"].value_counts()

可以看出,每種指標的資料都是 44 條,
1.4 info 整體的基本資訊
df.info()

info函式包括每列的名稱、資料型別、非空值數量、甚至記憶體使用量等資訊,
2. 缺失值處理
收集的資料難免缺失,對缺失值的處理進行分析前必要的步驟,因為:
- 保證資料的完整性和準確性,缺失值的存在可能會影響資料的可靠性和分析結果的準確性,因此及時處理缺失值能夠保證資料的完整性和準確性,
- 提高資料分析結果的準確性,處理缺失值能夠提高資料分析結果的準確性,因為缺失值會對資料分析結果產生一定的偏差,處理缺失值能夠減少這種偏差,提高資料分析結果的可靠性,
- 使資料更容易被理解和處理,處理缺失值能夠使資料更加規范和標準化,從而方便資料的理解和處理,如果資料中存在大量的缺失值,可能會造成資料處理困難,降低資料的處理效率,
- 使得資料更加適合建模,處理缺失值能夠使得資料更加適合建模,因為缺失值可能會影響模型的訓練和預測效果,處理缺失值能夠提高模型的準確性和可靠性,
pandas中提供了 isnull 和 notnull 兩個函式來標記缺失值,也提供了fillna 和 dropna兩個函式來處理缺失值,
演示缺失值處理的測驗資料如下:
import pandas as pd
fp = "http://databook.top:8888/pandas/missing-values.csv"
df = pd.read_csv(fp)
df

缺失的資料默認值為 NaN,
2.1 查看缺失值
pandas通過isnull函式可以標記缺失的值,缺失的值顯示為 True,
df.isnull()

notnull函式與之相反,缺失的值顯示為 False,
df.notnull()

通過這兩個函式,可以很方便的過濾包含或未包含缺失值的資料,
# value缺失 【并且】 指標中文未缺失的資料
df[df.value.isnull() & df["指標中文"].notnull()]

# value未缺失 【或者】 指標中文缺失的資料
df[df.value.notnull() | df["指標中文"].isnull()]

2.2 填充缺失值
對于缺失值,為了防止其對后續的分析演算法造成影響,一般有兩種處理方式,
一種是填充默認值,一種是直接洗掉包含缺失值的資料,
填充缺失值用fillna函式,
df.value = https://www.cnblogs.com/wang_yb/archive/2023/05/14/df.value.fillna(0.0)
df["指標編碼"] = df["指標編碼"].fillna("A000000")
df["指標中文"] = df["指標中文"].fillna("默認指標")
df

各列填充不同的默認值之后如上,
2.3 洗掉缺失值
洗掉缺失值時,請關注2個關鍵的引數,
一個是 how,另一個是subset,
how="all"時,只有當前列所有資料都是NaN時才洗掉,
df.dropna(how="all")

沒有滿足條件的資料,所有資料都保留下來了,
how="any"時,只要有一個資料是NaN,就會洗掉當前行資料,
df.dropna(how="any")

所有資料都洗掉了,因為示例資料中每一行都有一個NaN資料,
除了how之外,另一個常用的引數是subset,與how相比,它可以具體指定哪些列為NaN時才洗掉資料,
df.dropna(subset=["value", "指標中文"])

指標中文或者value為NaN的資料都洗掉了,
3. 重復值處理
在資料分析中,處理重復值是非常重要的,因為重復值會影響分析結果和資料準確性,
處理重復值可以:
- 避免重復計算:重復值可能會導致重復計算,從而影響資料分析結果的準確性,
- 減少存盤空間:去除重復值可以減少資料存盤空間,從而提高資料處理效率,
- 提高資料分析精度:處理重復值可以提高資料分析的準確性和精度,從而幫助分析師做出更準確的決策,
- 符合資料質量標準:去除重復值可以提高資料的完整性和一致性,符合資料質量標準,
- 簡化資料可視化:處理重復值可以簡化資料可視化操作,從而幫助分析師更好地理解資料,
演示重復值處理的測驗資料如下:
import pandas as pd
fp = "http://databook.top:8888/pandas/duplicate-values.csv"
df = pd.read_csv(fp)
df

3.1 查找重復值
pandas提供了duplicated()方法來檢查DataFrame中的重復值,
該方法回傳一個布爾Series,其中True表示該行是重復的,False表示該行不是重復的,
df.duplicated()

根據index,可以看出哪些行是重復的,
3.2 洗掉重復值
對于重復的值,一般都是直接洗掉,
洗掉重復資料的方法drop_duplicates中有個keep引數可以重點關注下,
# 重復時,保留第一個資料
df.drop_duplicates(keep="first")

keep="first"時,從index可以看出,保留的是重復資料中index最小的資料,
# 重復時,保留最后一個資料
df.drop_duplicates(keep="last")

keep="last"時,從index可以看出,保留的是重復資料中index最大的資料,
df.drop_duplicates(keep=False)

keep=False時,所有重復的資料都被洗掉了,
4. 總結回顧
本篇主要介紹pandas在資料整理方面的能力,主要包括:
- 資料概要資訊的獲取
- 缺失值的處理
- 重復值的處理
熟練掌握資料整理的方法,可以讓后續的分析步驟更加高效,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552415.html
標籤:其他
上一篇:數字分頻器設計(偶數分頻、奇數分頻、小數分頻、半整數分頻、狀態機分頻|verilog代碼|Testbench|仿真結果)
下一篇:返回列表
