<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
NumPy、Pandas、Matplotlib、SciPy 等可以說是最最最常用的 Python 庫了。我們在使用 Python 庫的時候,通常會遇到兩種情況。以 Pandas 舉例。
這個時候大家就會開始藉助百度、知乎、谷歌、CSDN 開始進行關鍵搜尋了。這樣做當然可以,最終也能得到你想要的結果,但是就會面臨兩個小問題。
基於以上,我就在想如何解決這樣一個問題。解決方案如下:假如你知道但只是忘記了某個函數可以實現這個功能,那麼當你看到函數名稱的時候,就會想起來。所以,我想把最最常用的一些方法和函數名稱直接羅列出來,然後你一眼掃過去或者直接 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常用函數方法總結的文章就介紹到這了,更多相關Pandas常用函數方法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45