c++控制台应用每一列数据如何对齐_Python数据分析第五节 pandas入门
這一節將開始學習python的一個核心數據分析支持庫---pandas,它是python數據分析實踐與實戰的必備高級工具。對于使用 Python 進行數據分析來說,pandas 幾乎是無人不知,無人不曉的。今天,我們就來認識認識數據分析界鼎鼎大名的 pandas。
目錄
一. pandas主要數據結構
?Series
DataFrame
二.?列的查改增刪
查看列
修改列
新增列
刪除列
三. 導入Excel表格
一.?pandas主要數據結構
想要了解pandas,我們需要先了解它的主要數據結構Series(一維數據)和DataFrame(二維數據),這兩種數據足夠用來處理金融,統計,社會工作工程等領域絕大多數案例!
在開始之前我們需要了解怎么導入pandas庫
import pandas as pd將 pandas 簡寫成 pd 幾乎成了一種不成文的規定。因此,只要你看到 pd 就應該聯想到這是 pandas。
??Series
Series 是一種類似于 Numpy 中一維數組的對象,它由一組任意類型的數據以及一組與之相關的數據標簽(即索引)組成。舉個最簡單的例子:
輸出的結果中:左邊的是數據的標簽,默認從 0 開始依次遞增。右邊是對應的數據,最后一行表明了數據類型。
我們也可以像下面這樣使用 index 參數自定義數據標簽:
我們還可以直接使用字典同時創建帶有自定義數據標簽的數據,pandas 會自動把字典的鍵作為數據標簽,字典的值作為相對應的數據。
可以看出運行結果和上面是一樣的!
訪問 Series 里的數據的方式,也是使用中括號加數據標簽的方式來獲取里面的數據
import pandas as pds1 = pd.Series([2, 4, 6, 8])s2 = pd.Series({'a': 2, 'b': 4, 'c': 6, 'd': 8})print(s1[0])# 輸出:2print(s2['b'])#?輸出:4標簽的作用很強大,我們可以對相同標簽的兩組數據進行加減乘除運算
假設有兩個租車公司,我們要計算一下兩家公司各種汽車的數量總和:
pandas 自動幫我們將相同數據標簽的數據進行了計算,這就是數據對齊。
你可能會有疑問,如果兩家租車公司汽車種類不一樣怎么辦,pandas 還能進行數據對齊嗎?我們試一下就知道了。
可以看到,對于數據標簽不相同的數據,運算后結果是 NaN。NaN 是 Not a Number(不是一個數字)的縮寫,因為其中一個 Series 中沒有對應數據標簽的數據,無法進行計算,因此返回了 NaN。
對于這種情況,我們想讓沒有的數據默認為 0,然后再進行計算。這種需求 pandas 可以實現嗎?
當然可以!只需調用 Series 的?add()?方法,并設置好默認值即可。具體用法如下:
add()?方法對應的是加法,數學中的四則運算在 pandas 中都有一一對應的方法,它們的用法都是類似的。具體對應關系如下圖所示:
2.?DataFrame
Series 是一維數據,而 DataFrame 是二維數據。什么意思呢?你可以把 DataFrame 想象成一個表格,表格有行和列這兩個維度,所以是二維數據。
實際上,表格中的每一行或每一列都是一個 Series,這些 Series 就組成了 DataFrame。按行分,每一行數據加上上面的數據標簽就是一個 Series,?或者按列分每一列數據加上左邊的數據標簽也是一個Series
那么,如何用 DataFrame 實現上圖中那樣的表格呢?也很簡單,請看代碼:
接下來是本節的重點——DataFrame。構建 DataFrame 的辦法有很多,最常用的一種是傳入一個由等長列表組成的字典。即字典里每個值都是列表,且它們的長度必須相等。
這樣我們就得到了一個表格,字典的鍵會作為表格的列名。最左邊的是索引,也是默認從 0 開始依次增加。當然,我們也可以在構建 DataFrame 的時候傳入 index 參數來自定義索引。
全都寫在一行代碼就太長了,所以我把表格數據放到了變量 data 中。并且通過 index 參數將日期作為了 DataFrame 的索引。
二. 列的查改增刪
1.?查看列
為了減少重復代碼的出現,接下來的講解都基于下面的代碼。
import pandas as pddata = { '蘭博基尼': [14, 20], '邁凱輪': [7, 3], '法拉利': [8, 13], '帕加尼': [10, 6]}df = pd.DataFrame(data, index=['租車公司A', '租車公司B'])如果我們只想查看有關法拉利的數據,我們可以這樣寫:
print(df['法拉利'])輸出結果為:
我們還能同時選擇多列進行查看,只要把多個列名放到列表當中即可。
print(df[['法拉利',?'邁凱輪']])輸出結果為:
2. 修改列
如果我們發現表格中的數據有錯誤,想要修改,這其實非常的簡單,直接對已有列直接賦值即可。
df['法拉利']?=?[18,?23]print(df)輸出結果就為修正后的:
3. 新增列
如果想要新增一列同樣也非常的簡單,對表格中不存在的列直接賦值就能添加新的列了。
df['奧迪R8']?=?[3,?5]print(df)輸出結果為
4.?刪除列
刪除列需要用到 drop()?方法。我們先來看一下用法:
df.drop('邁凱輪',?axis=1,?inplace=True)print(df)#?或者?print(df.drop('邁凱輪',?axis=1))drop()?方法的第一個參數是要刪除的列名或索引。axis 表示針對行或列進行刪除,axis = 0 表示刪除對應的行,axis = 1 表示刪除對應的列,axis 默認為 0。
最后的 inplace = True 表示直接修改原數據,否則?drop()?方法只是返回刪除后的表格,對原表格沒有影響。因此上面兩種寫法的結果是一樣的。
三. 導入Excel表格
導入Excel表格只需要一行代碼即可:
import pandas as pddf?=?pd.read_excel('文件所在路徑/文件名.xlsx')我們可以用代碼:
print(type(df))來查看導入數據是一維數據(Series)還是二維數據(DataFrame)
讀取到表格數據后,可能表格數據很多,我們想大致確認一下表格內容,不需要打印出完整的表格。這時我們可以使用 head()?方法來查看前 5 條數據。
代碼為:
print(df.head())head()?方法還支持傳入參數來控制顯示前多少條數據,比如前 2 條數據:
print(df.head(2))除了查看開頭的一些數據,還可以使用 tail()?方法查看末尾的數據。用法和 head()?一致,默認顯示 5 條,可以傳入參數來改變顯示的條數。
print(df.tail())我們還能通過 info()?方法查看整個表格的大致信息。
print(df.info())運行結果及主要含義如下圖所示:(用季度銷售額的數據舉例)
通過?info()?方法我們可以對表格大致有個了解,知道有幾行幾列,以及哪列有多少條缺失數據。
除此之外,我們還能通過?describe()?方法來快速查看數據的統計摘要,方便我們對數據有一個直觀上的認識。
print(df.describe())生成的摘要從上往下分別表示數量、平均數、標準差、最小值、25% 50% 75% 位置的值和最大值。
?
長按關注公眾號
歡迎留言交流
總結
以上是生活随笔為你收集整理的c++控制台应用每一列数据如何对齐_Python数据分析第五节 pandas入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node 获取表单数据 为空_数据结构与
- 下一篇: activity 启动模式_腾讯大牛:你