1. 程式人生 > >pandas(二)pandas處理丟失資料

pandas(二)pandas處理丟失資料

Jupyter NotebookLogout2-pandas_missing_values Last Checkpoint: 06/13/2018 (unsaved changes)TrustedCodeMarkdownRaw NBConvertHeading-

處理丟失資料

In [2]:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

有兩種丟失資料:

  • None
  • np.nan(NaN)
In [3]:
type(None)
Out[3]:
NoneType
In [4]:
type(np.nan)
Out[4]:
float
In [5]:
type
(1000)
Out[5]:
int
In [6]:
type("hello")
Out[6]:
str
In [7]:
np.nan + 100
Out[7]:
nan
In [8]:
100 + "dsaf"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-fb724d538b75> in <module>()
----> 1
100 + "dsaf" TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [ ]:
None + 100

1. None

None是Python自帶的,其型別為python object。因此,None不能參與到任何計算中。

object型別的運算要比int型別的運算慢得多
計算不同資料型別求和時間
%timeit np.arange(1e5,dtype=xxx).sum()

In [ ]:
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]:
ABCDEF
a102034NaN23.0NaN
b1020134312.0NaN20.0
c205698NaNNaNNaN

使用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: float64
In [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()
In [12]:
df
Out[12]:
ABCDEF
a102034NaN23.0NaN
b1020134312.0NaN20.0
c205698NaNNaNNaN
In [13]:
df.isnull()
Out[13]:
ABCDEF
aFalseFalseFalseTrueFalseTrue
bFalseFalseFalseFalseTrueFalse
cFalseFalseFalseTrueTrueTrue
In [14]:
df.isnull().all(axis=0) # 判斷每一列中的所有元素是否全為True,如果是則為True
Out[14]:
A    False
B    False
C    False
D    False
E    False
F    False
dtype: bool
In [15]:
df.isnull().any(axis=0) 
# 判斷每一列中是否有為True的元素,如果有一個為True,則為True
Out[15]:
A    False
B    False
C    False
D     True
E     True
F     True
dtype: bool
In [16]:
df.isnull().all(axis=1)
Out[16]:
a    False
b    False
c    False
dtype: bool
In [17]:
df.isnull().any(axis=1)
Out[17]:
a    True
b    True
c    True
dtype: bool

相關推薦

pandaspandas處理丟失資料

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 資料分析3Pandas 資料結構 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學習——Pandas1

   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

推薦系統 —— 利用使用者行為資料 —— 基於領域的演算法

為了讓推薦結果符合使用者口味,我們需要深入瞭解使用者。使用者的行為不是隨機的,而是蘊含著許多模式的。基於使用者行為分析的推薦演算法是個性化推薦系統的重要演算法,僅僅基於使用者行為資料設計的推薦演算法