您好,登錄后才能下訂單哦!
本篇內容介紹了“Python Pandas常用函數方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
NumPy、Pandas、Matplotlib、SciPy 等可以說是最最最常用的 Python 庫了。我們在使用 Python 庫的時候,通常會遇到兩種情況。以 Pandas 舉例。
我想對 Pandas 數據結構的數據實現某種操作,但是我不知道或者說在我的印象里似乎已經不記得是否有這樣的函數方法,如果有,又該用哪個方法呢?
我想實現某種數據操作,我記得我用過或者見過某個函數可以實現這個功能,但是我死活想不起來那個函數叫啥了。或者,我想起來了哪個函數可以實現這個功能,但是我想知道是否有更好的選擇。
這個時候大家就會開始借助百度、知乎、谷歌、CSDN 開始進行關鍵搜索了。這樣做當然可以,最終也能得到你想要的結果,但是就會面臨兩個小問題。
有時候我想對數據做這樣的操作,我心里知道是這個意思,但是我不知道如何去描述這個事情,關鍵詞不精確,導致搜索的結果有偏差,搜索技術不行,走了不少彎路。
搜索到別人提供的結果,但是呢,要么排版很亂,要么長篇大論,從函數接口開始一點一點說,一堆你不想要的信息,讓你 get 不到重點,明明一秒鐘可以解決的問題,卻花了你一分鐘去看別人的解釋,獲取重點,浪費了不少時間。
基于以上,我就在想如何解決這樣一個問題。解決方案如下:假如你知道但只是忘記了某個函數可以實現這個功能,那么當你看到函數名稱的時候,就會想起來。所以,我想把最最常用的一些方法和函數名稱直接羅列出來,然后你一眼掃過去或者直接 ctrl+f
搜索中文,就能輕易喚起你曾經的記憶。假如你不知道是否存在一個函數,有你想要的功能,我依然還是把函數名稱羅列出來,然后在其后進行一個中文的補充說明。你一眼掃過這些函數及其補充說明,相信很快就能判斷是否有滿足你需求的函數。
下面的內容這樣組織,第二部分我羅列出常用的 Pandas 函數方法,及其補充說明,第三部分我對這些函數的用法進行舉例子,你拷貝到代碼中進行修改就可以直接使用,這比從接口模板開始一點一點看省事多了。我相信這也是大部分優秀的程序員想要的東西,用最短的時間,完成想做的事情。當然,當下面的內容不滿足你的需求,你可以進一步地去搜索即可。
以下函數方法,涵蓋了 90% 以上的使用情況,值得收藏,作為小字典查詢。
除非你經常用某種語言,函數方法爛熟于心而根本不需要查詢,否則的話,大部分人也記不住這些東西。可能只記得有這么一個東西,都是現查別人的代碼,要么拷貝過來改改,要么手抄過來。特別是我這種,接觸的語言比較多,就經常搞串用法,大部分時候 ,都是現查現賣。
## 讀寫 pd.Series #定義一維標記數組 pd.DataFrame #定義數據框 pd.read_csv #讀取逗號分隔符文件 pd.read_excel #讀取 excel 表格 pd.to_excel #寫入 excel 表格 pd.read_sql #讀取 SQL 數據 pd.read_table #讀取 table pd.read_json #讀取 json 文件 pd.read_html #讀取 html pd.read_clipboard() #從剪切板讀入數據 df.to_csv #寫入 csv 文件 df.to_excel #寫入 excel 文件 df.to_sql #寫入 SQL 表 df.to_json #寫入 JSON 文件 df.to_html #寫入 HTML 表格 df.to_clipboard() #寫入剪切板 ## 數據展示和統計 df.info() #統計數據信息 df.shape() #統計行數和列數 df.index() #顯示索引總數 df.columns() #顯示數據框有哪些列 df.count() #顯示有多少個記錄 df.head(n) #返回前 n 個,默認 5 df.tail(n) #返回后 n 個 df.sample(n) #隨機選取 n 行 df.sample(frac = 0.8) #百分比為 0.8 的選取 df.dtypes #查看每一列的數據類型 df.sum() #數據框按列求和 df.cumsum() #數據框累計求和 df.min() #給出每列的最小值 df.max() #給出每列的最大值 df['列名'].idxmin() #獲取數據框某一列的最小值 mySeries.idxmin() #獲取 Series 的最小值 df['列名'].idxmax() #獲取數據框某一列的最大值 mySeries.idxmax() #獲取 Series 的最大值 df.describe() #關數據的基本統計信息描述 df.mean() #給出數據框每一列的均值 df.median() #給出數據框每一列的中位數 df.quantile #給出分位數 df.var() #統計每一列的方差 df.std() #統計每一列的標準差 df.cummax() #尋找累計最大值,即已出現中最大的一個 df.cummin() #累計最小值 df['列名'].cumproad() #計算累積連乘 len(df) #統計數據框長度 df.isnull #返回數據框是否包含 null 值 df.corr() #返回列之間的相關系數,以矩陣形式展示 df['列名'].value_counts() #列去重后給每個值計數 ## 數據選擇 mySeries['列名'] #用中括號獲取列 df['列名'] #選取指定列 df.列名 #同上 df[n0:n1] #返回 n0 到 n1 行之間的數據框 df.iloc[[m],[n]] #iloc按行號來索引,兩層中括號,取第 m 行第 n 列 df.loc[m:n] #loc 按標簽來索引,返回索引 m 到 n 的數據框,loc、iloc 主要針對行來說的 df.loc[:,"列1":"列2"] #返回連續列的所有行 df.loc[m:n,"列1":"列2"] #返回連續列的固定行 df['列名'][n] #選取指定列的第 n 行 df[['列1','列2']] #返回多個指定的列 ## 數據篩選和排序 df[df.列名 < n] #篩選,單中括號用于 bool 值篩選 df.filter(regex = 'code') #過濾器,按正則表達式篩選 df.sort_values #按某一列進行排序 df.sort_index() #按照索引升序排列 df['列名'].unique() #列去重 df['列名'].nunique() #列去重后的計數 df.nlargest(n,'列名') #返回 n 個最大值構成的數據框 df.nsmallest(n,'列名') #返回 n 個最小的數據框 df.rank #給出排名,即為第幾名 ## 數據增加刪除修改 df["新列"] = xxx #定義新列 df.rename #給列重命名 df.index.name = "index_name" #設定或者修改索引名稱 df.drop #刪除行或者列 df.列名 = df.列名.astype('category') #列類型強制轉化 df.append #在末尾追加一行 del df['刪除的列'] #直接刪除一列 ## 特別的 df.列名.apply #按列的函數操作 pd.melt #將寬數據轉化為長數據(拆分拉長),run 一下下面例子就知道什么意思了 pd.merge #兩個數據表間的橫向連接(內連接,外連接等) pd.concat #橫向或者縱向拼接
mySeries = pd.Series([1,2,3,4], index=['a','b','c','d']) data = {'Country' : ['Belgium', 'India', 'Brazil' ], 'Capital': ['Brussels', 'New Delhi', 'Brassilia'], 'Population': [1234,1234,1234]} df = pd.DataFrame(data, columns=['Country','Capital','Population']) pd.DataFrame(np.random.rand(20,5)) df = pd.read_csv('data.csv') pd.read_excel('filename') pd.to_excel('filename.xlsx', sheet_name='Sheet1') df.quantile([0.25, 0.75]) # 給出每一列中的25%和75%的分位數 filters = df.Date > '2021-06-1' df[filters] #選出日期在某個日期之后的所有行 df.filter(regex='^L') #選出 L 開頭的列 df.sort_values('列名', ascending= False) #按指定列的值大小升序排列 df.rename(columns= {'老列名' : '新列名'}) #修改某個列名 df["新列"] = df.a- df.b #定義一個新的列表示為兩個的差 df.columns = map(str.lower(), df.columns) #所有列名變為小寫字母 df.columns = map(str.upper(), df.columns) #所有列名變為大寫字母 df.drop(columns=['列名']) #刪除某一列 df.drop(['列1', '列2'], axis=1) #含義同上,刪除兩列 mySeries.drop(['a']) #刪除 Series 指定值 df.drop([0, 1]) #根據索引刪除,雙閉區間 def fun(x): return x*3 df.列名.apply(fun) #把某一列乘 3 倍 df.列名.apply(lambda x: x*3) #匿名表達式的寫法 df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'},'B': {0: 1, 1: 3, 2: 5}, 'C': {0: 2, 1: 4, 2: 6}}) pd.melt(df, id_vars=['A'], value_vars=['B','C']) #melt的使用 new=pd.DataFrame({'name':'lisa', 'gender':'F', 'city':'北京'},index=[1]) df = new df=df.append(new) #增加一行數據 frame = pd.DataFrame({'a':[2.3,-1.7,5,3],'b':[6,2.9,-3.1,8]},index=['one','two','three','four']) frame.rank(method="min",ascending=False)#對每一列的數據,根據大小給個排名 #merge 表示橫向連接 df3 = pd.merge(df1,df2,how='inner',on='股票簡稱') #on表示連接列,how選擇連接方式 pd.merge(df1,df2,left_on='lkey',right_on='rkey',how='left') #當連接列名不同分別指定 #concat 拼接 pd.concat([df1,df1]) #縱向連接,當s1和s2索引不重疊時,可以直接拼接 pd.concat([df1,df1],axis = 1) #橫向連接,默認外連接,以行索引為連接字段
“Python Pandas常用函數方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。