python數據處理常用函數_pandas數據分析常用函數總結大全:上篇

基礎知識在數據分析中就像是九陽神功,熟練的掌握,加以運用,就可以練就深厚的內力,成為絕頂高手自然不在話下!

為了更好地學習數據分析,我對于數據分析中pandas這一模塊里面常用的函數進行了總結。整篇總結,在詳盡且通俗易懂的基礎上,我力求使其有很強的條理性和邏輯性,所以制作了思維導圖,對于每一個值得深究的函數用法,我也會附上官方鏈接,方便大家繼續深入學習。

文章中的所有代碼都會有講解和注釋,絕大部分也都會配有運行結果,這樣的話,整篇總結篇幅量自然不小,所以我分成了上下兩篇,這里是上篇,下篇在次條。

1. 導入模塊

import pandas as pd # 這里用到的是pandas和numpy兩個模塊

import numpy as np

2. 創建數據集并讀取

2.1 創建數據集

我構造了一個超市購物的數據集,該數據集屬性包括:訂單ID號(id)、訂單日期(date)、消費金額(money)、訂單商品(product)、商品類別(department)、商品產地(origin)。

# 列表和字典均可傳入DataFrame,我這里用的是字典傳入:

data=pd.DataFrame({

"id":np.arange(101,111), # np.arange會自動輸出范圍內的數據,這里會輸出101~110的id號。

"date":pd.date_range(start="20200310",periods=10), # 輸出日期數據,設置周期為10,注意這里的周期數應該與數據條數相等。

"money":[5,4,65,-10,15,20,35,16,6,20], # 設置一個-10的坑,下面會填(好慘,自己給自己挖坑,幸虧不準備跳~)

"product":['蘇打水','可樂','牛肉干','老干媽','菠蘿','冰激凌','洗面奶','洋蔥','牙膏','薯片'],

"department":['飲料','飲料','零食','調味品','水果',np.nan,'日用品','蔬菜','日用品','零食'], # 再設置一個空值的坑

"origin":['China',' China','America','China','Thailand','China','america','China','China','Japan'] # 再再設置一個america的坑

})

data # 輸出查看數據集

輸出結果:

42bb4a1020b048868f5057c3ab57a8e1

2.2 數據寫入和讀取

data.to_csv("shopping.csv",index=False) # index=False表示不加索引,否則會多一行索引

data=pd.read_csv("shopping.csv")

3. 數據查看

3.1 數據集基礎信息查詢

data.shape # 行數列數

data.dtypes # 所有列的數據類型

data['id'].dtype # 某一列的數據類型

data.ndim # 數據維度

data.index # 行索引

data.columns # 列索引

data.values # 對象值

3.2 數據集整體情況查詢

data.head() # 顯示頭部幾行(默認5行)

data.tail() # 顯示末尾幾行(默認5行)

data.info() # 數據集相關信息概覽:索引情況、列數據類型、非空值、內存使用情況

data.describe() # 快速綜合統計結果

4. 數據清洗

4.1 查看異常值

當然,現在這個數據集很小,可以直觀地發現異常值,但是在數據集很大的時候,我用下面這種方式查看數據集中是否存在異常值,如果有其他更好的方法,歡迎傳授給我。

for i in data:

print(i+": "+str(data[i].unique())) # 查看某一列的唯一值

輸出結果:我們發現,該數據集中money存在一個負值,department存在一個空值以及origin存在大小寫問題。

c43e5b6ee6f9461f8b2b7f4f4ff12141

4.2 空值處理

4.2.1 空值檢測

data.isnull()# 查看整個數據集的空值data['department'].isnull()# 查看某一列的空值

data.isnull() # 查看整個數據集的空值

data['department'].isnull() # 查看某一列的空值

輸出結果:

b8d112e973b04f3c9e86fb383f92cd1c

將空值判斷進行匯總,更加直觀,ascending默認為True,升序。

data.isnull().sum().sort_values(ascending=False)

輸出結果:

75d70408b2a440f39fb4381f4eef9414

4.2.2 空值處理

pandas.DataFrame.fillna(value = None,method = None,inplace = False)

value:用于填充的值,可以是具體值、字典和數組,不能是列表;

method:填充方法,有 ffill 和 bfill 等;

inplace默認無False,如果為True,則將修改此對象上的所有其他視圖。

data['department'].fillna(method="ffill") # 填充上一個值,即填充“水果”

輸出結果:

cefa9ea54103421a952f902a0a6157ba

data['department'].fillna(method="bfill") # 填充下一個值,即填充“日用品”

data['department'].fillna(value="冷凍食品",inplace=True) # 替換為具體值,并且在原對象值上進行修改

輸出結果:

c3bef6515b1d4ac791a82a483b8c5541

4.3 空格處理

只針對object類型數據

for i in data: # 遍歷數據集中的每一列

if pd.api.types.is_object_dtype(data[i]): # 如果是object類型的數據,則執行下方代碼

data[i]=data[i].str.strip() # 去除空格

data['origin'].unique() # 驗證一下

輸出結果:array([‘China’, ‘America’, ‘Thailand’, ‘america’, ‘Japan’], dtype=object)

4.4 大小寫轉換

data['origin'].str.title() # 將首字母大寫

data['origin'].str.capitalize() # 將首字母大寫

data['origin'].str.upper() # 全部大寫

data['origin'].str.lower() # 全部小寫

4.5 數據替換

data['origin'].replace("america","America",inplace=True) # 將第一個值替換為第二個值,inplace默認為False

data['origin']

輸出結果:

a9fbf193d43b4679a8a654c74e148040

data['money'].replace(-10,np.nan,inplace=True) # 將負值替換為空值

data['money'].replace(np.nan,data['money'].mean(),inplace=True) # 將空值替換為均值

data['money']

輸出結果:

67479bc8d239456e92f9626a6e6c0a01

4.6 數據刪除

方法一

data1 = data[data.origin != 'American'] #去掉origin為American的行

data1

data2=data[(data != 'Japan').all(1)] #去掉所有包含Japan的行 不等于Japan的行為真,則返回

data2

方法二

data['origin'].drop_duplicates() # 默認刪除后面出現的重復值,即保留第一次出現的重復值

輸出結果:

92dfa8ce51894564bc5f7106ac35b52f

data['origin'].drop_duplicates(keep='last') # 刪除前面出現的重復值,即保留最后一次出現的重復值

輸出結果:

66fab1206b6345d09a2c58ab1fdfd671

更多關于pandas.DataFrame.drop_duplicates的用法,戳下面官方鏈接:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html#pandas.DataFrame.drop_duplicates

4.7 數據格式轉換

data['id'].astype('str') # 將id列的類型轉換為字符串類型。

常見的數據類型對照

8459526048cd423098d8eac374e1a074

4.8 更改列名稱

data.rename(columns={'id':'ID', 'origin':'產地'}) # 將id列改為ID,將origin改為產地。

輸出結果:

3054435b70a144dab844f24bc05cd843

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258959.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258959.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258959.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XML的應用

1.XML的定義: XML 于 1998 年 2 月 10 日成為 W3C 的推薦標準。xml一般指可擴展標記語言,可擴展標記語言是一種很像超文本標記語言的標記語言。它的設計宗旨是傳輸數據,而不是顯示數據。 2.通過XML我們可以自定義自己的標簽,如: &…

虛擬機VMware里 windows server 2003 擴充C盤方法

你會經常用windows server 2003 嗎?應該不會吧,有時一些東西必須裝在windows server 2003 上才能用,所以 用虛擬機把,好,裝在虛擬機上,8G的C盤夠你用嗎,一個稍微大點的軟件就可能就沒空間來存儲…

從運維角度淺談MySQL數據庫優化

一個成熟的數據庫架構并不是一開始設計就具備高可用、高伸縮等特性的,它是隨著用戶量的增加,基礎架構才逐漸完善。這篇博文主要談MySQL數據庫發展周期中所面臨的問題及優化方案,暫且拋開前端應用不說,大致分為以下五個階段&#x…

c語言c99標準_自學C語言之一

上次自學C語言還是在剛開學到國慶期間,聽學姐的建議買了本C語言的書,在軍訓期間的晚上翻翻看看。后來選課、開始正式上課、面試社團、開各種會等等,好像每天都有許多事要忙,但又沒忙出來什么結果,慢慢地好像就把C語言放…

boost解析info文件

先給出info文件: parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 機制對排版的影響

Font Rending 的 Hint 機制對排版的影響【轉】 在設計一種 Font 時,設計者使用的是一個抽象的單位,叫做 EM,來源于大寫 M 的寬度(通常英文字體中大寫 M 的寬度最大)。EM 即不同于在屏幕顯示時用的像素(Pixe…

《SQL初學者指南(第2版)》——2.4 指定列

本節書摘來自異步社區出版社《SQL初學者指南(第2版)》一書中的第2章,第2.4節,作者:【美】Larry Rockoff,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.4 指定列 到目前為止,我們只…

python從文件中提取特定文本_使用Python從HTML文件中提取文本

我發現最好的一段代碼用于提取文本,而不需要javascript或不需要的東西:import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文轉載自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中,mutable是為了突破const的限制而設置的。被mutable修飾的變量,將永遠處于可變的狀態,即使在一個const函數中,甚至結構體變量或者類對象為const…

文本框點擊后文字消失總結

1.文本框顯示默認文字&#xff1a; <textarea>白鴿男孩</textarea> <textarea>白鴿男孩</textarea>    2.鼠標點擊文本框&#xff0c;默認文字消失&#xff1a; <textarea οnfοcus”if(value’白鴿男孩’) {value’ ‘}”>白鴿男孩</text…

[裴禮文數學分析中的典型問題與方法習題參考解答]4.5.8

需要全部的解答, 請 http://www.cnblogs.com/zhangzujin/p/3527416.html 設 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 時, $f(x)$ 單調遞增趨于 $\infty$, 則 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收斂. 證明: 由 $$\be…

《PowerShell V3——SQL Server 2012數據庫自動化運維權威指南》——2.13 創建視圖...

本節書摘來自異步社區出版社《PowerShell V3—SQL Server 2012數據庫自動化運維權威指南》一書中的第2章&#xff0c;第2.13節&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.13 創建視圖 本方案展…

python刷抖音_用Python生成抖音字符視頻!

抖音字符視頻在去年火過一段時間。 反正我是始終忘不了那段極樂凈土的音樂... 這一次自己也來實現一波&#xff0c;做一個字符視頻出來。 主要用到的庫有cv2&#xff0c;pillow庫。 原視頻如下&#xff0c;直接抖音下載的&#xff0c;妥妥的水印。 不過并不影響本次的操作。 / …

變長參數

轉載自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 變長參數 設計一個參數個數可變、參數類型不定的函數是可能的&#xff0c;最常見的例子是printf函數、scanf函數和高級語言的Format函數。在C/C中&#xff0c;為了通知編譯器函數的參數個數和類型可變…

第十七章 我國農業科學技術

農村改革解說&#xff08;專著&#xff09;第十七章 第十七章 我國農業科學技術 1、為什么說科學技術是生產力&#xff1f; 我們說科學技術是生產力&#xff0c;是因為在構成生產力的兩個主要因素中&#xff0c;都包含著科學技術在內。 A、生產力中人的因素是同一定的科學技術緊…

《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一一1.2 選購鏡頭時應注意的事項...

本節書摘來自異步社區出版社《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一書中的第1章&#xff0c;第1.2節&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.2 選購鏡頭時應注意的事項 面對如此之多的鏡頭&#xf…

OpenCV中的神器Image Watch

Image Watch是在VS2012上使用的一款OpenCV工具&#xff0c;能夠實時顯示圖像和矩陣Mat的內容&#xff0c;跟Matlab很像&#xff0c;方便程序調試&#xff0c;相當好用。跟VS2012配合使用&#xff0c;簡直就是一款神器&#xff01;讓我一下就愛上它了&#xff01; 下面介紹一些鏈…

python異步_Python通過Thread實現異步

當long函數耗時較長時&#xff0c;需要程序先向下執行&#xff0c;這就需要異步&#xff0c;改寫代碼如下&#xff1a; import _thread import time def long(cb): print (long execute) def fun(callback): time.sleep(5) result long end callback(result) _thread.start_ne…

SAM4E單片機之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通過它提供的庫&#xff0c;可以很快速地完成新的項目。 這次的最終目標使用ASF在LCD上顯示出文字“Hello World!”&#xff0c;現階段目標是點亮LCD的背光&#xff0c;學習目標…

《HTML5與CSS3實戰指南》——2.2 基本的HTML5模板

本節書摘來自異步社區《HTML5與CSS3實戰指南》一書中的第2章&#xff0c;第2.2節,作者&#xff1a; 【美】Estelle Weyl , Louis Lazaris , Alexis Goldstein 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.2 基本的HTML5模板 在您學習HTML5和新技術時&#xff0c;您…