時間:2023-06-19|瀏覽:246
九道門丨pandas的18個重要函數,你會用哪些?(上)。
接著上次,我們今天繼續來分享Pandas的18個重要函數(下),感興趣的同學趕緊拿出小本本記下來吧。
數據分析優質社群,等你加入哦~
10)df.astype():
當你想把一個特定的列數據類型轉換為另一種數據類型,DataFrame.astype函數就能派上用場。
語法:
DataFrame.astype(dtype,copy=True,errors="raise")
參數: dtype:將整個pandas對象轉換為同一類型。numpy.dtype{col:dtype,…}numpy.dtype copy:默認為True。在以下情況返回副本copy=Truecopy=False。 Errors:默認為“raise”。控制對提供的dtype的無效數據引發異常。raise:允許引發異常ignore:禁止顯示異常。出錯時返回原始對象。
例:
df=pd.read_csv("employees.csv") df.info #changingthedtypeofcolumns"Team"and"Salary" df=df.astype({"Team":"category","Salary":"int64"})
11)pd.concat():
沿特定軸連接pandas對象,并沿其他軸連接可選的設置邏輯。還可以在連接軸上添加分層索引層,如果傳遞的軸編號上的標簽相同(或重疊),則這可能很有用。
語法:
pandas.concat(objs,axis=0,join=outer,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,sort=False,copy=True)
參數: objs:序列或數據幀對象的序列或映射。 axis:默認0。連接軸:要連接的軸可以是下標為0,列為1。 join:{"inner","outer"},默認為"outer"。 ignore_index:bool,默認為False。 keys:順序,默認無。 levels:序列列表,默認無。 names:列表,默認無。 verify_integrity:bool,默認為False。 sort:bool,默認為False。
例:
import pandas as pd df1=pd.DataFrame({"points":[25,12,15,14,19],"Player":["Adam","Bob","Cot","Derrick","Ethan"],"rebounds":[11,8,10,6,6]}) df2=pd.DataFrame({"points":[15,22,75,84,29],"Player":["A","B","C","D","E"],"rebounds":[18,38,90,56,36]}) #Concatingboththedataframes pd.concat([df1,df2]) #連接后為數據幀分配鍵: df_concat=pd.concat([df1,df2],keys=["Set1","Set2"]) df_concat #兩個集合的索引都是重復的。因此使用ignore_index=True df_concat=pd.concat([df1,df2],keys=["Set1","Set2"],ignore_index=True) df_concat #沿軸axis=1:df2添加第二個數據幀 df_concat=pd.concat([df1,df2],keys=["Set1","Set2"],axis=1) df_concat
組合具有重疊列的對象,并僅返回那些通過傳遞關鍵字參數來共享的對象:DataFrameinnerjoin。
import pandas as pd df1=pd.DataFrame({"points":[25,12,15,14,19],"Player":["Adam","Bob","Cot","Derrick","Ethan"],"rebounds":[11,8,10,6,6]}) df2=pd.DataFrame({"points":[15,22,75,84,29],"Player":["A","B","C","D","E"],"rebounds":[18,38,90,56,36],"Overs":[25,12,15,14,19]}) df_concat=pd.concat([df1,df2],join="inner") df_concat
12)df.describe():
describe函數用于生成描述性統計信息,包括匯總數據集分布的中心趨勢、分散度和形狀(不包括值)的統計數據。它分析數值和對象序列,以及混合數據類型的列集。輸出取決于所提供的數據。
語法:
DataFrame.describe(percentiles=None,include=None,exclude=None)
參數: percentile:列出介于0–1之間的列表式數據類型。 include:描述數據幀時要包含的數據類型列表。 exclude:描述數據幀時要排除的數據類型列表。
例:
df2=pd.DataFrame({"points":[15,22,75,84,29],"Player":["A","B","C","D","E"],"rebounds":[18,38,90,56,36],"Overs":[25,12,15,14,19]}) df2.describe
13)df.isnull.sum:
在分析數據之前,刪除缺失值、計算缺失值及其百分比非常重要。
df.isnull.sumfunctionisusedtocountthenumberofmissingvaluesineachcolumn.
使用的數據:沃爾瑪銷售預測|卡格爾
import pandas as pd df=pd.read_csv("features.csv") df.isnull.sum
14)pd.isna:
檢測類似數組的對象的缺失值。此函數采用標量或類似數組的對象,并指示值是否丟失。
對于標量輸入,返回標量布爾值。對于數組輸入,返回一個布爾數組,指示是否缺少每個相應的元素。
df.isna
返回存在空值和不空值的位置。
15)pd.to_datetime:
將參數轉換為日期時間。
s=pd.Series(["5/10/2022","5/10/2022","5/10/2022"]*100) 將序列的數據類型更改為sobjectdatetime
pd.to_datetime(s)
16)df.isin:
isin函數可以傳遞一個列表,以檢查數據幀/序列中是否存在值列表。
例:
s=pd.Series(["5/10/2022","5/11/2022","5/12/2022"]*100) lst=["5/10/2022"] s.isin(lst)
如果存在值且找不到值,則返回TrueFalse
17)df.pivot:
返回按給定索引/列值組織的重構數據幀。
語法:
DataFrame.pivot(index=None,columns=None,values=None)
例:
df2=pd.DataFrame({"points":[15,22,75,84,29],"team":["A","B","C","D","E"],"player":["Adam","Tom","Jerry","Harry","Jon"]}) pivot_df2=df2.pivot(index="player",columns="team",values["points"]) pivot_df2=pivot_df2.fillna("-") pivot_df2
18)df.insert:
將列插入到DataFrame的指定位置。
參數: loc:dtypeis,插入索引。必須驗證0<=loc<=len(列) column:數字或可哈希(hashable)對象 value:標量、系列或類似數組 allow_duplicates:布爾值,可選默認False
語法:
DataFrame.insert(loc,column,value,allow_duplicates=False)
例:
df.insert(2,"age",[45,34,23,34,56,55,45,30,33]) df