Python修煉之NaN 和 None 的詳細比較
任何型別的資料和nan做計算都是float型別
python原生的None和pandas, numpy中的numpy.NaN儘管在功能上都是用來標示空缺資料。但它們的行為在很多場景下確有一些相當大的差異。由於不熟悉這些差異,曾經給我的工作帶來過不少麻煩。 特此整理了一份詳細的實驗,比較None和NaN在不同場景下的差異。
實驗的結果有些在意料之內,有些則讓我大跌眼鏡。希望讀者看過此文後會None和NaN這對“小妖精”有更深的理解。
為了理解本文的內容,希望本文的讀者需要對pandas的Series使用有一定的經驗。
首先,匯入所需的庫
In[2]:
Python123 | fromnumpy importNaN |
資料型別?
None是一個python特殊的資料型別, 但是NaN卻是用一個特殊的float
In[3]:
Python1 | type(None) |
Out[3]:
Python1 | NoneType |
In[4]:
Python1 | type(NaN) |
Out[4]:
Python1 | float |
能作為dict的key?
In[5]:
Python1 | {None:1} |
Out[5]:
Python1 | {None:1} |
In[6]:
Python1 | {NaN:1} |
Out[6]:
Python1 | {nan:1} |
In[7]:
Python1 | {None:1,NaN |
Out[7]:
Python1 | {nan:2,None:1} |
都可以,而且會被認為是不同的key
Series函式中的表現
Series.map
In[8]:
Python12 | s=Series([None,NaN,'a'])s |
Out[8]:
Python1234 | 0None1NaN2adtype:object |
In[9]:
Python1 | s.map({None:1,'a':'a'}) |
Out[9]:
Python1234 | 01112adtype:object |
相關推薦
Python修煉之NaN 和 None 的詳細比較
任何型別的資料和nan做計算都是float型別python原生的None和pandas, numpy中的numpy.NaN儘管在功能上都是用來標示空缺資料。但它們的行為在很多場景下確有一些相當大的差異。由於不熟悉這些差異,曾經給我的工作帶來過不少麻煩。 特此整理了一份詳細的實
資料庫中的空值與NULL的區別以及python中的NaN和None
資料庫裡面的”空值”有兩種:空字元(“”)、空值(NULL)。 兩種儲存方式在資料庫中都很常見,實際中根據業務或者個人習慣可以用這兩種方式來儲存“空值”。那這兩種到底有什麼區別,下面通過例子直接來展示: -- 建立表test create table `
Python 中 NaN 和 None 的詳細比較
python原生的None和pandas, numpy中的numpy.NaN儘管在功能上都是用來標示空缺資料。但它們的行為在很多場景下確有一些相當大的差異。由於不熟悉這些差異,曾經給我的工作帶來過不少麻煩。 特此整理了一份詳細的實驗,比較None和NaN在不同場景下的差異。 實
143.Python修煉之路【148-前端-移動端庫和框架-BootStrap】2018.08.04
bootstrap 簡單、直觀、強悍的前端開發框架,讓web開發更迅速、簡單。 來自Twitter,是目前很受歡迎的前端框架之一。 Bootrstrap是基於HTML、CSS、JavaScript的,讓書寫程式碼更容易。 移動優先,響應式佈局開發。 bootstrap中文網址:http://
142.Python修煉之路【147-前端-移動端庫和框架-swiper】2018.08.04
swiper swiper.js是一款成熟穩定的應用於PC端和移動端的滑動效果外掛,一般用來觸屏焦點圖、觸屏整屏滾動等效果。 swiper分為2.x版本和3.x版本,2.x版本支援低版本瀏覽器(IE7),3.x放棄支援低版本瀏覽器,適合應用在移動端。 2.x版本中文網址:http://2.s
Python 基礎之列表和元組
bcp rtt fcn ott emd lns swe 二維數組 ttf list Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。 比如,列出班裏所有同學的名字,就可以用一個list表示: >>
獨立python環境之virtualenv和virtualenvwrapper
mark then 版本 ret 編輯 bashrc popu exp 影響 介紹 如果有一臺測試機,多個人使用,有多個項目,不同項目可能python版本號不一樣。須要的庫不一樣。我們須要一個獨立幹凈的python環境,互相隔離,互不影響。 virt
python學習之range()和xrange()
python2 har col 叠代 cnblogs 註意 tor 並不是 但是 在python2中,xrange()返回一個xrange對象,註意這個對象並不是生成器,也不是叠代器,但是是叠代對象。 而range()則返回列表對象。 >>> range
Python學習之dict和set
不可變 需要 after 集合 value 報錯 list 也會 如果 #coding=utf-8 # dict dict= {‘bob‘: 40, ‘andy‘: 30} print dict[‘bob‘] # 通過dict提供的get方法,如果key不存在,可以返回N
python基礎之dict和set
算法 dict name 區別 刪除元素 哈希算法 div 數學 blog dict dict是dictionary的縮寫,python內置了字典,在其他語言中也稱為map,使用鍵值對儲存,具有極快的查找速度。 如果是只用list來實現,就需要兩個list,先在第一個lis
不折騰,毋寧死。Python修煉之路(目錄)
OS 交互 bytes 編碼 ext 基礎 while循環 進制 面向 目錄 一、Python基礎 二、函數和常用模塊 三、面向對象 四、網絡編程基礎 五、網絡編程進階 六、WEB開發基礎 七、WEB開發進階 八、算法與設計模式 一、Py
python學習之break和continue在for循環中的使用(案例:打印出10以內的偶數,並且只要前三個偶數)
com python學習 bsp 次循環 bubuko python alt info 偶數 運行程序,break是整個程序都跳出 continue則表示跳過當前一次循環,然後繼續執行循環 python學習之break和continue在for循環中的使用(案例:打
python修煉之路-day5
baby 哈希 cat lar default col none value pop 一.字典 字典的介紹: 1.用大括號{} 括起來. 內部使用key:value的形式來保存數據 2.註意:字典的key必須是可哈希的. 不可變的, value 沒有限制
Python語法之選擇和迴圈(if、while)
前言:在程式開發中,一共有三種流程方式: 順序:從上向下,順序執行程式碼 分支:根據條件判斷,決定執行程式碼的分支 迴圈:讓特定程式碼重複執行(解決程式設計師重複工作) 1.判斷的定義: 如果條件滿足,才能做某件事 如果條件不滿足,就做另外一件事情,或者什麼也不做 正是有了判斷,才使得程式世界豐富多彩,充滿
C++ Essentials 之 lower_bound 和 upper_bound 的比較函式格式不同
第一次注意到這個問題。 cppreference 上的條目: lower_bound upper_bound C++17 草案 N4659 lower_bound template<class ForwardIterator, class T> ForwardIterator lower_
26 Java學習之NIO和IO得比較
轉自:https://www.cnblogs.com/aspirant/p/8630283.html 一、概念 NIO即New IO(非阻塞IO),這個庫是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,
Python面試之 is 和 == 的區別
面試實習生的時候,當問到 is 和 == 的區別時,很多同學都答不上來,搞不清兩者什麼時候返回一致,什麼時候返回不一致。本文我們來看一下這兩者的區別。 我們先來看幾個例子: 上面的輸出結果中為什麼有的 is 和 == 的結果相同,有的不相同呢?我們來看下官方文件中對於 is 和
IOS多執行緒之NSoperation和GCD的比較
GCD是基於c的底層api,NSOperation屬於object-c類。iOS首先引入的是NSOperation,IOS4之後引入了GCD和NSOperationQueue並且其內部是用gcd實現的。 相對於GCD: 1,NSOperation擁有更多的函式可用,具體檢視api。
python基礎之append和extend的區別
1.append a = [1,2,3] b=[1,2] a.append(b) ------------------------------------------------- a Out[60]: [1, 2, 3, [1, 2]] 將b作為整個元素append進去。 2.ext
python爬蟲之xpath和lxml解析內容
上兩章說了urllib和request庫如何訪問一個頁面或者介面,從而獲取資料,如果是訪問介面,還好說,畢竟返回的json還是很好解析的,他是結構化的,我們可以把它轉化成字典來解析,但是如果返回的是xml或者html,就有點麻煩了,今天就主要說一下如果解析這些h