pandas(二)pandas處理丟失資料
處理丟失資料
In [2]:import numpy as np
import pandas as pd
from pandas import Series,DataFrame
有兩種丟失資料:
- None
- np.nan(NaN)
type(None)
Out[3]:NoneTypeIn [4]:
type(np.nan)
Out[4]:floatIn [5]:
type (1000)
Out[5]:intIn [6]:
type("hello")
Out[6]:strIn [7]:
np.nan + 100
Out[7]:nanIn [8]:
100 + "dsaf"
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-8-fb724d538b75> in <module>() ----> 1In [ ]:100 + "dsaf" TypeError: unsupported operand type(s) for +: 'int' and 'str'
None + 100
1. None
None是Python自帶的,其型別為python object。因此,None不能參與到任何計算中。
object型別的運算要比int型別的運算慢得多
計算不同資料型別求和時間
%timeit np.arange(1e5,dtype=xxx).sum()
1e5
In [ ]:%timeit np.arange(1e6,dtype="int").sum()
In [ ]:%timeit np.arange (1e6,dtype="float").sum()
In [ ]:%timeit np.arange(1e6,dtype="object").sum()
2. np.nan(NaN)
np.nan是浮點型別,能參與到計算中。但計算的結果總是NaN。
但可以使用np.nan*()函式來計算nan,此時視nan為0。
In [ ]:nd = np.array([10,20,30,np.nan])
nd
In [ ]:nd.sum()
In [ ]:np.nansum(nd)
In [ ]:np.nanmean(nd)
In [ ]:np.array([1,2,3,np.nan,None])
In [ ]:
3. pandas中的None與NaN
1) pandas中None與np.nan都視作np.nan
建立DataFrame
In [9]:df = DataFrame([[10,20,34,None,23,np.nan],
[10,20,134,312,None,20],
[20,56,98,np.nan,np.nan,None]
],
index=list("abc"),
columns=list("ABCDEF"))
df
Out[9]:A | B | C | D | E | F | |
---|---|---|---|---|---|---|
a | 10 | 20 | 34 | NaN | 23.0 | NaN |
b | 10 | 20 | 134 | 312.0 | NaN | 20.0 |
c | 20 | 56 | 98 | NaN | NaN | NaN |
使用DataFrame行索引與列索引修改DataFrame資料
In [10]:df.sum(axis=0) # axis=0把行加起來
Out[10]:A 40.0 B 96.0 C 266.0 D 312.0 E 23.0 F 20.0 dtype: float64In [11]:
df.sum(axis=1) # 把列加起來
Out[11]:a 87.0 b 496.0 c 174.0 dtype: float64
【注】pandas中的nan在運算的時候被視作0
2) pandas中None與np.nan的操作
isnull()
notnull()
dropna()
: 過濾丟失資料fillna()
: 填充丟失資料
(1)判斷函式
isnull()
notnull()
df
Out[12]:A | B | C | D | E | F | |
---|---|---|---|---|---|---|
a | 10 | 20 | 34 | NaN | 23.0 | NaN |
b | 10 | 20 | 134 | 312.0 | NaN | 20.0 |
c | 20 | 56 | 98 | NaN | NaN | NaN |
df.isnull()
Out[13]:A | B | C | D | E | F | |
---|---|---|---|---|---|---|
a | False | False | False | True | False | True |
b | False | False | False | False | True | False |
c | False | False | False | True | True | True |
df.isnull().all(axis=0) # 判斷每一列中的所有元素是否全為True,如果是則為True
Out[14]:A False B False C False D False E False F False dtype: boolIn [15]:
df.isnull().any(axis=0)
# 判斷每一列中是否有為True的元素,如果有一個為True,則為True
Out[15]:A False B False C False D True E True F True dtype: boolIn [16]:
df.isnull().all(axis=1)
Out[16]:a False b False c False dtype: boolIn [17]:
df.isnull().any(axis=1)
Out[17]:a True b True c True dtype: bool
相關推薦
pandas(二)pandas處理丟失資料
Logout2-pandas_missing_values Last Checkpoint: 06/13/2018 (unsaved changes)Python 3 TrustedCodeMarkdo
Python數據分析(二)pandas缺失值處理
taf spa 3.0 .data float 數據分析 pandas panda pri import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), index
資料分析工具之Pandas(二)轉載
一、Pandas統計計算和描述 示例程式碼: import numpy as np import pandas as pd df = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd']) print(d
小白學 Python 資料分析(3):Pandas (二)資料結構 Series
在家為國家做貢獻太無聊,不如跟我一起學點 Python 順便問一下,你們都喜歡什麼什麼樣的文章封面圖,老用這一張感覺有點醜 人生苦短,我用 Python 前文傳送門: 小白學 Python 資料分析(1):資料分析基礎 小白學 Python 資料分析(2):Pandas (一)概述 引言 先介
pandas縱向學習之10 minutes to pandas(二)
pandas縱向學習之10 minutes to pandas(一) 布林值索引 df[df.A>0] A B C D 2013-01-02 0.356680 -0.468280 1.293093 -0.752251 2013-01-03 1.179930
python學習(二)——Pandas篇(1)
Pandas 一個數據分析處理的庫,基於Python 底層是基於numpy的,Pandas的核心結構是DataFrame。 此篇簡單學習了Pandas的基礎操作,主要包括對.csv檔案的讀取(pandas.read_csv(“path”));讀取資料的前幾行(.head
(二)servlet處理Http響應
web nbsp 購物車 res 請求 head 自動 地址 發生 重定向:web服務器收到客戶端的請求後,通知客戶端發送一個新的請求到另一個房web服務器。 resp.sendRedirect("URL"); 特點:1)客戶端發送兩次請求 2)瀏
java常用工具類(二)—— JSON處理工具類
tor ast val simple sta 轉換 local pass password package com.springboot.commons.utils; import com.springboot.commons.scan.JacksonObjectMapp
Python爬蟲(二):爬蟲獲取資料儲存到檔案
接上一篇文章:Python爬蟲(一):編寫簡單爬蟲之新手入門 前言: 上一篇文章,我爬取到了豆瓣官網的頁面程式碼,我在想怎樣讓爬取到的頁面顯示出來呀,爬到的資料是html頁面程式碼,不如將爬取到的程式碼儲存到一個檔案中,檔案命名為html格式,那直接開啟這個檔案就可以在瀏覽器上看到爬取資料的
(二)go的基礎資料結構型別
1.go的常量 package main import "fmt" /* 常量是指程式執行時不可改變的值,常量必須初始化值。定義常量既可以指定型別,編譯器也可以在常量初始化時做型別判斷。 並且在函式程式碼塊中定義常量,不被使用也不會出現編譯錯誤。 在常量組中,如果不指定型別和常量值,那麼常量的型別
生信基礎(二)——生信學習資料
原創: hxj7 上次談到生信人員需要熟練掌握一些程式語言,還講了Perl和Python的選擇問題。那麼,如果已經選定了一門程式語言,到底該如何學習它呢?今天的我們可以通過MOOC跟著名師學習或者上知乎提問,幸運的話還能得到大牛指點。不過,在我剛接觸程式設計的時候,MOOC和知乎都還未興
資料庫知識整理 - 關係資料庫標準語言SQL(二)- 超良心的資料查詢整理!
主要內容 資料查詢 基本語法 單表查詢 1. 選擇表中的若干列 2. 選擇表中的若干元組 3. ORDER BY子句 4. 聚集函式 5. GROUP BY子句 連線查詢 1. 等值與非等值連線查詢 2. 自身連線 3. 外
ActiveMQ(二)——訊息處理機制
一、前言 上文中,小編提到安裝ActiveMQ,但是對於ActiveMQ中訊息是用什麼樣的形式儲存的?下面小編就向大家介紹一下。 二、訊息型別 對於訊息的傳遞有兩種型別: 1.點對點的,即一個生產者和一個消費者一一對應; 2.釋出/訂閱模式,即一個生產者產生訊
關係資料庫標準語言SQL(二)- 超良心的資料查詢整理!
主要內容 資料查詢 基本語法 單表查詢 連線查詢 3. 外連線 巢狀查詢 資料查詢 資料查詢是資料庫的核心操作,該篇將著重介紹資料查詢的五種方式:單表查詢、連線查詢、巢狀查詢、集合查詢和基於派生表的查詢。 基本語
蘋果新的程式語言 Swift 語言進階(二)--基本資料型別
一 、 常量和變數 Swift語言 對常量和變數的宣告進行了明確的區分 Swift語言的常量型別比C 語言的constants型別更加強大,語義更加明確。 常量和變數的區別是常量在設定或初
Vue 爬坑之路(二)—— 元件之間的資料傳遞
Vue 的元件作用域都是孤立的,不允許在子元件的模板內直接引用父元件的資料。必須使用特定的方法才能實現元件之間的資料傳遞。 首先用 vue-cli 建立一個專案,其中 App.vue 是父元件,components 資料夾下都是子元件。 一、父元件向子元件傳遞資料
PyTorch 學習筆記(二):PyTorch的資料增強與資料標準化
本文擷取自《PyTorch 模型訓練實用教程》,獲取全文pdf請點選:https://github.com/tensor-yu/PyTorch_Tutorial 文章目錄 transform的使用 在實際應用過程中,我們會在資
影象處理(二)opencv處理影象二值化,灰度化等
這裡主要實現的 opencv 基於 android 對影象進行常用處理,比如說灰度化,二值化,rgb的轉換,這裡就不貼主要程式碼,只是工具程式碼。 Utils.xxx方法的使用需要在MainActivity.class中新增此方法(好像是掉用opencv,an
Linux常用命令(二)——檔案處理命令(未拓展)
1、file ①、作用: 根據檔案內容判斷檔案型別,使用許可權是所有使用者②、格式: file 通過探測文 file [options] 檔名③、主要引數: -v 在標準輸出後顯示版本資訊,並且推出 -z 探測壓縮過的檔案型別 -L 允許符合連線 -f name 從檔案na
推薦系統(二) —— 利用使用者行為資料 —— 基於領域的演算法
為了讓推薦結果符合使用者口味,我們需要深入瞭解使用者。使用者的行為不是隨機的,而是蘊含著許多模式的。基於使用者行為分析的推薦演算法是個性化推薦系統的重要演算法,僅僅基於使用者行為資料設計的推薦演算法