一篇文章帶你查看並處理Pandas數據

2021-01-11 CDA數據分析師

今天我們將一下如何查看Pandas中的各類數據以及對Pandas進行處理的一些方法,通過這些方法我們可以更快的掌握Pandas對數據進行處理:

描述與統計函數應用修改列/行索引名稱類型的操作表合併的方式一、描述與統計

有時會我們在獲取到數據之後,想要查看一下數據的簡單統計指標(比如最大值,最小值,平均值,中位數等等),如想要查看年齡的最大值,就可以直接對年齡這一列調用max方法就可以了。

1、查看最大值

查看眾英雄中年齡最大的是多少歲,三種方式都可以查看

第一種是使用np.max()對info表中的年齡列進行操作

第二種是使用np.max()對info表下的年齡進行操作

第三種是info表下的年齡進行max()查找

2、查看均值

查看眾英雄年齡的均值

類似的可以通過調用min、mean、quantile、sum 方法可以實現最小值、平均值、中位數以及求和。可以看到,對一個Series調用這幾個方法之後,返回的都只是一個聚合結果。

3、按軸求和

下面給大家介紹一個有意思的方法:cumsum(),看這個方法的名字就能看出來它跟sum方法有點關係,應該是用來求和之類的,事實上的確如此,cumsum也是用來求和的,不過他是用來累加求和的,也就是通過它得到的結果與原始的Series或DataFrame的大小相同。

通過結果可以看到,cumsum最後的結果就是將上一次求和的結果與原始當前值求和作為當前值。

當然如果只是這種功能的話,也就沒有那麼有意思了,這個方法有意思的是可以對字符串類型的對象進行操作。

4、查看表格信息

雖然說常見的各種統計值都有對應的方法,如果我想要得到多個指標的話,就需要調用多次方法,是不是顯得有點麻煩呢?

Pandas 設計者自然也考慮到了這個問題,想要一次性獲取多個統計指標,只需調用 describe 方法即可。

可以看到,直接調用describe方法後,會顯示出數字類型的一些統計指標比如:總數,平均數,標準差,最小值,最大值,四分位數等

如果想要查看非數字類型的列的統計指標的話,可以設置include=[object]來獲得數據。

6、統計某個值出現的次數:value_counts

查看英雄們的城市和性別出現的次數

查看英雄的年齡分布

7、查看最小值或最大值對應的索引

如果想要查看某列最大值或最小值對應的的索引可以使用idxmax或idxmin方法來完成。

如果索引不是數據的話將會返回該行的行數。

查看哪位英雄的年齡最小

查看哪位英雄的年齡最大

8、離散化

有時候我們在處理數據的時候會碰到一些需求,比如想要將年齡進行離散化,也就是將年齡分成幾個區間,這裡我們想要將年齡分成三個區間段,就可以使用pandas的cut方法來完成。

通過這個結果可以看到,cut自動生成了等距的離散區間,如果自己想定義也是沒有問題的。

這裡我們將區間定義為3個區間,1-30之間屬於青少年英雄,30-60之間的屬於中年英雄,60-5000就屬於不正常的的地球英雄了。有時候離散化之後,想要給每個區間起一個名字,那麼我們可以指定labels參數

給英雄們添加一列中青年屬性使用loc[]給表添加列

除了可以使用cut進行離散化之外,qcut也可以實現離散化。Cut是根據每個值的大小來進行離散化,qcut是根據每個值出現的次數進行離散化的。

9、排序功能

在進行數據分析時,少不了的就是進行數據排序。Pandas支持兩種排序方式:按軸(索引或列)排序和按實際值排序。

9.1、按索引排序

Sort_index()方法默認是按照索引進行正序排列

下面這個是英文索引下的排序

還可以通過sort_values(by=』』)進行排序,by的意思是通過什麼區排序,直接填寫也可以。按性別排序:

按年齡排序:

如果想要進行倒序排列,可以設置參數axis=1或則ascending=False

9.2、按值排序

如果想要實現按照實際值來排序,例如想要按照年齡排序。

使用sort_values方法,參數設置by=age即可

有時候我們可能需要按照多個值來排序,例如:按照年齡和城市來一起排序,可以設置參數 by 為一個 list 即可,需要注意的是:list 中每個元素的順序會影響排序優先級的,先分組在排序,最後一個為排序標準。

有時候數據量太大的時候,我們可能只需要看前幾行或者後幾行的數據,那麼這個時候我們就可以用head()和tail()方法查看,head()方法默認只列印前5行內容,括號內可以填寫想要的行數,tail()方法同理,只不過tail()方法是查看後五行的數據。

一般在排序後,我們可能需要獲取最大的n個值或最小值的n個值,我們可以使用 nlargest 和 nsmallest 方法來完成,這比先進行排序,再使用 head(n)方法快得多。

二、函數應用

1.根據現有列生成新的列

生成一列元素為英雄年齡對數的

生成一列身高列

生成一列年齡加一的列

經過了復聯4後,英雄們通過各種戰鬥現在都統一長高了10釐米,現在再表格中添加一列英雄們的新身高

現在給英雄表中添加一列性別代碼列,1代表女士,0代表男式

2、常用函數

雖說 Pandas 為我們提供了非常豐富的函數,有時候我們可能需要自己定製一些函數,並將它應用到 DataFrame 或 Series。常用到的函數有map、apply、applymap。

Map是是 Series 中特有的方法,通過它可以對 Series 中的每個元素實現轉換。如果想通過年齡判斷用戶是否屬於中年人(50歲以上為中年),通過 map 可以輕鬆搞定它。

又比如我們可以通過城市來判斷地球還是外星,我們可以這麼操作。

Apply方法: apply 方法既支持 Series,也支持 DataFrame,在對 Series 操作時會作用到每個值上,在對 DataFrame 操作時會作用到所有行或所有列(通過 axis參數控制)。

對於series來說,apply方法和map方法差別不大

但是對於DataFrame來說,apply方法的作用對象是一行或一列數據

Applymap: applymap方法針對於DataFrame,它作用於DataFrame中的每個元素,它對DataFrame的效果類似於apply對 Series 的效果。

三、修改列/索引名稱

在使用 DataFrame 的過程中,經常會遇到修改列名,索引名等情況。使用 rename 輕鬆可以實現。修改列名只需要設置參數 columns 即可。

將鋼鐵俠和索爾的身高改為170

生成一列字符串格式的身高列

更改索引列名稱

修改列標籤,將年齡改為age,城市改為city,性別改為sex

類似的修改索引名只需要修改參數index就可以了

四、類型操作

1、get_dtype_counts()

如果想要獲取每種類型的列數的話,可以使用 get_dtype_counts 方法

2、 astype()

如果想要轉換數據類型的話,可以通過astype來完成

2.1、生成一列年齡的對數列,並且列元素元素為整數列

首先使用np.log生成一列對數列

使用round()函數將對數列四捨五入

使用astype()將對數列轉為整數列

2.2將年齡列改為浮點型

3、其他方法

有時候會涉及到將 object 類型轉為其他類型,常見的有轉為數字、日期、時間差,Pandas 中分別對應 to_numeric、to_datetime、to_timedelta 方法。

五、表合併的方式

1、append()方式

導入兩個表

查看兩個表的內容

使用append()方法將2表導入到1表中

2、concat()

2.1、縱向合併(axis=0(默認為0))

2.2、橫向合併(axis=1)

相關焦點

  • 一篇文章帶你使用Pandas畫出圖形
    這篇文章帶領大家介紹一下如何使用pandas進行可視化操作,繪製一些圖形,如條形圖、直方圖、散點圖等,以及一些繪圖時缺失值的繪製方式和一些繪圖的工具和格式,方便大家更快的了解如何使用Pandas進行可視化的繪圖,相信通過這篇文章大家可以在以後處理數據的時候可以繪製出自己想要的圖形。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 使用pandas和openpyxl處理複雜Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • Python數據分析利器,Pandas入門介紹,幫你便捷高效處理複雜數據
    關於Python的數據分析,當我們遇到的數據量小、數據結構簡單時,可以通過字典、列表等Python常見的數據結構來處理。但是當我們面對的大量數據以及複雜數據的局面時,就需要用一些專門用於數據分析的擴展庫來處理數據了。今天給大家介紹一個Python裡專門用來做數據分析和處理的擴展庫。
  • 使用Pandas的resample函數處理時間序列數據的技巧
    時間序列數據在數據科學項目中很常見。 通常,可能會對將時序數據重新採樣到要分析數據的頻率或從數據中汲取更多見解的頻率感興趣。在本文中,我們將介紹一些使用Pandas resample()函數對時間序列數據進行重採樣的示例。 我們將介紹以下常見問題,並應幫助您開始使用時序數據操作。
  • 懂Excel也能輕鬆入門Python數據分析包pandas(二):高級篩選(上)
    更多 Python 數據處理的乾貨,敬請關注!!!!系列文章:懂Excel就能輕鬆入門Python數據分析包pandas(一):篩選功能前言經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。
  • pandas指南:做更高效的數據科學家
    如果你是Python新手,很難知道針對特定任務的包哪個是最好的。你需要有經驗的人來告訴你。今天我要告訴你們的是:在數據科學中,有一個軟體包是你們絕對需要學習的,那就是pandas。而pandas真正有趣的地方是,很多其他的包也在裡面。pandas是一個核心包,因此它具有來自其他各種包的特性。
  • Python學習120課 pandas簡介kaggle下載數據及pandas讀取外部數據
    現在我們開始學習pandas,pandas一般用的更多,pandas是基於numpy去寫的。pandas是一個專門做數據結構和數據分析的庫。●pandas的安裝推薦使用anaconda,只要安裝了anaconda,它裡面就會自帶pandas,這會為我們省去很多的麻煩。接下來就是用pandas去處理數據,數據從哪來呢?
  • 帶你領略pandas中多表之間如何處理
    但我們在處理Pandas多表數據時,我們需要將多個表之間進行表格的連接與合併,當連接完多表之後我們可能還需要對數據進行多重的索引,方便我們更快的找到數據,以及對數據進行做透視表,更加直觀的去觀察我們的數據,今天我們就圍繞著數據合併以及數據重塑及透視表進行展開講解,讓我們去了解在Pandas中如何去這麼操作數據。
  • PANDAS: 新手教程 一
    它可以幫助你對數據進行各種操作,並生成有關它的不同報告。我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。
  • 懂Excel輕鬆入門Python數據分析包pandas(二十一):透視表
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節文章最後我隨手使用了 pandas 中的透視表操作,之後有些小夥伴詢問我相關的問題。正好 pandas 的 pivot_table 也是與 Excel 透視表對應。本文簡單教你入門使用 pandas 完成透視表功能。
  • 未明學院:7張思維導圖掌握數據分析關鍵庫pandas
    原創: 未明學院Pandas是一個強大的分析結構化數據的工具集;它基於numpy,用於數據分析和數據挖掘,同時也提供數據清洗功能。pandas與numpy一起構成了數據分析的基礎雙生庫。今天小明邀請了未明的王老師,給大家總結了pandas的核心知識,主要包括以下幾個方面。pandas核心知識01、首先我們來認識一下pandas的一些基本概念。pandas概述02在使用pandas做數據分析的時候往往第一步就是將數據導入進來,比如csv或者excel格式的數據,下面這張圖就是我們讀取數據時候的方法和參數。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    訪問flyai.club,一鍵創建你的人工智慧項目Pandas含有使數據清洗和分析工作變得更快更簡單的數據結構和操作工具。pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。
  • PANDAS: 新手教程 一 - 人工智慧遇見磐創
    它可以幫助你對數據進行各種操作,並生成有關它的不同報告。我將把這篇文章分成兩篇基本知識-我將在這個故事中介紹。我將介紹Pandas的基本功能,這些功能將使你大致了解如何開始使用Pandas,以及它如何幫助你節省大量時間。高級-將通過高級的功能,使它更容易解決複雜的分析問題。它將涵蓋的主題,如風格,繪圖,讀取多個文件等。第二部分仍在進行中,敬請期待。
  • Pandas自動進行探索性數據分析,節省可視化和理解數據的時間
    根據Wikipedia的說法,探索性數據分析(EDA)是一種分析數據集以總結其主要特徵的方法,通常使用視覺方法。因此,EDA是理解基礎數據,變量分布及其相關性的過程。這使得EDA成為構建任何統計模型之前任何數據科學過程中的第一步。
  • Pandas GUI:如何輕鬆獲取Pandas數據幀?
    可以通過以下幾種方式安裝PandasGUI:# from PyPipip install pandasguior# from Githubpip install git+https://github.com/adamerose/pandasgui.git接下來,筆者將通過一個示例來介紹PandasGUI庫的各種功能。
  • 提高數據處理效率,一行代碼開啟Pandas四倍速!
    快來了解新庫Modin,可以分割pandas的計算量,提高數據處理效率,一行代碼即刻開啟Pandas四倍速。首先了解一些基礎知識:Pandas作為Python中用於處理數據的庫,能簡單且靈活地處理不同種類、大小的數據。除此之外,Pandas還有許多函數有助於輕鬆處理不同數據。
  • 嫌pandas慢又不想改代碼怎麼辦?來試試Modin
    但方法的改進上難免會遇到上限瓶頸,比如數據非常大的時候。最近看到了一篇也是關於對pandas提速的文章,但是從另一個角度,工具。使用它可以很好的突破操作優化上的瓶頸,而這個工具就是Modin。Modin存在的意義就是:更改一行代碼來提速pandas工作流程。
  • 想成為高效數據科學家?不會Pandas怎麼行
    要想成為一名高效的數據科學家,不會 Pandas 怎麼行?Python 是開源的,它很棒,但是也無法避免開源的一些固有問題:很多包都在做(或者在嘗試做)同樣的事情。如果你是 Python 新手,那麼你很難知道某個特定任務的最佳包是哪個,你需要有經驗的人告訴你。有一個用於數據科學的包絕對是必需的,它就是 pandas。