對比excel,學習pandas實現(xiàn)數(shù)據(jù)表檢查的9種方法
↑↑↑關注后"星標"簡說Python
人人都可以簡單入門Python、爬蟲、數(shù)據(jù)分析 簡說Python推薦 來源:python數(shù)據(jù)分析之禪 作者:小dull鳥

最近打算做一個“對比excel,學習pandas”系列,內容包括包括數(shù)據(jù)檢查、數(shù)據(jù)清洗、數(shù)據(jù)預處理、數(shù)據(jù)提取、數(shù)據(jù)篩選、數(shù)據(jù)匯總、數(shù)據(jù)統(tǒng)計等7個方面,幫助讀者更好的掌握這兩大主流數(shù)據(jù)分析工具,今天是第一篇--《對比excel,pandas實現(xiàn)數(shù)據(jù)表檢查的9種方式》
我們在用python做數(shù)據(jù)處理的時候,通常數(shù)據(jù)量都比較大,用肉眼無法直觀的了解數(shù)據(jù)的整體情況,必須先用pandas給數(shù)據(jù)做一個全身“體檢”,為后面的數(shù)據(jù)清洗和預處理做好準備。下面給大家介紹9種數(shù)據(jù)檢查的9種方式:
1.查看數(shù)據(jù)的行數(shù)和列數(shù)
excel中可以通過ctrl+shift+向下箭頭查看行數(shù),通過ctrl+shift+向右箭頭查看列數(shù)。
pandas是用shape函數(shù)查看數(shù)據(jù)表的行數(shù)和列數(shù):
import pandas as pd
data=pd.read_excel('超市運營數(shù)據(jù)模板.xlsx')
data.shape
(3478, 8)返回的結果表示數(shù)據(jù)表有3478行,8列
2.查看數(shù)據(jù)的詳細信息
info函數(shù)可以查看數(shù)據(jù)表的緯度、列名稱、數(shù)據(jù)類型、非空值和內存使用情況等信息:
data.info()
<class 'pandas.core.frame.DataFrame'>RangeIndex: 3478 entries, 0 to 3477Data columns (total 8 columns):# Column Non-Null Count Dtype--- ------ -------------- -----0 商品ID 3478 non-null int641 類別ID 3478 non-null int642 門店編號 3478 non-null object3 單價 3478 non-null float644 銷量 3478 non-null float645 訂單ID 3478 non-null object6 日期 3478 non-null datetime64[ns]7 時間 3478 non-null objectdtypes: datetime64[ns](1), float64(2), int64(2), object(3)memory usage: 217.5+ KB
3.查看數(shù)據(jù)格式
excel通過選中數(shù)據(jù),在開始菜單中的數(shù)值類型來判斷數(shù)據(jù)的格式:

pandas使用dtypes函數(shù)來返回數(shù)據(jù)格式??梢砸淮涡圆榭此袛?shù)據(jù)的格式,也可以指定一列單獨查看:
data.dtypes
商品ID int64類別ID int64門店編號 object單價 float64銷量 float64訂單ID object日期 datetime64[ns]時間 objectdtype: object
結果返回了各列的數(shù)據(jù)類型
data['商品ID'].dtype
dtype('int64')
4.查看空值
excel中查看空值的方法是使用“定位條件”功能對數(shù)據(jù)表中的空值進行定位:

pandas中利用isnull函數(shù)檢驗空值,返回的結果是布爾值,可以對整個數(shù)據(jù)進行檢查:
data.isnull()
也可以單獨對某一列進行空值檢查:
data['商品ID'].isnull()
5.查看唯一值
excel中查看唯一值的方法是使用條件格式對唯一值進行顏色標記,依次點擊開始——條件格式——突出顯示單元格規(guī)則——重復值:


python中使用unique函數(shù)查看唯一值,只能對數(shù)據(jù)表中的特定列進行檢查,返回的是刪除重復項后的結果,代碼如下:
data['商品ID'].unique()
array([30006206, 30163281, 30200518, ..., 30026026, 30038941, 30206214],dtype=int64)
6.查看數(shù)據(jù)表數(shù)值
pandas使用values函數(shù)查看數(shù)據(jù)表中的數(shù)值,以數(shù)組形式返回:
data.values
array([[30006206, 915000003, 'CDNL', ..., '20201003CDLG000210052759',Timestamp('2011-01-03 00:00:00'), '09:56'],[30163281, 914010000, 'CDNL', ..., '20201003CDLG000210052759',Timestamp('2011-01-04 00:00:00'), '09:56'],[30200518, 922000000, 'CDNL', ..., '20201003CDLG000210052759',Timestamp('2011-01-05 00:00:00'), '09:56'],...,[30033854, 910000000, 'CDXL', ..., '20201003CDLG000510025149',Timestamp('2020-07-09 00:00:00'), '11:17'],[30206214, 910000000, 'CDXL', ..., '20201003CDLG000510025150',Timestamp('2020-07-10 00:00:00'), '11:40'],[30129510, 925090000, 'CDXL', ..., '20201003CDLG000510025151',Timestamp('2020-07-11 00:00:00'), '11:50']], dtype=object)
7.查看列名稱
pandas的columns函數(shù)用來單獨查看數(shù)據(jù)表中的列名稱
data.columns
Index(['商品ID', '類別ID', '門店編號', '單價', '銷量', '訂單ID', '日期', '時間'], dtype='object')
8.查看行名稱
pandas的columns函數(shù)用來單獨查看數(shù)據(jù)表中的列名稱
data.index
RangeIndex(start=0, stop=3478, step=1)
9.查看前10行數(shù)據(jù)
pandas的head函數(shù)用來查看數(shù)據(jù)表中的前N行數(shù)據(jù),可以自行設置行數(shù),默認顯示前10行:
#查看前9行
data.head(9)
10.查看后10行數(shù)據(jù)
與head相反的函數(shù)tail,用來查看數(shù)據(jù)表的后N行數(shù)據(jù),用法與head一致:
#查看后9行
data.tail(9)
掃碼查看我朋友圈
獲取最新學習資源
學習更多: 整理了我開始分享學習筆記到現(xiàn)在超過250篇優(yōu)質文章,涵蓋數(shù)據(jù)分析、爬蟲、機器學習等方面,別再說不知道該從哪開始,實戰(zhàn)哪里找了
“點贊”傳統(tǒng)美德不能丟 
