天天看點

dataframe判斷是否為空_Python對象類型之判斷

dataframe判斷是否為空_Python對象類型之判斷

intumu.com:機器學習(ML)、人工智能(AI)和土木工程的(TM)關系?​zhuanlan.zhihu.com

dataframe判斷是否為空_Python對象類型之判斷

前言

dataframe判斷是否為空_Python對象類型之判斷

着手開始寫的時候就一直有一個畫面在腦子中出現:小豬佩奇第N級,豬爸爸拿出來一本《混凝土的故事》,打開書的時候說道:混凝土是由砂子、水、水泥組成的,結果其他人都睡着了。于是,我在想,要是給土木人講:python萬法皆對象,對象類型有:

  • 數字:int,long,float,complex,bool
  • 字元:str,unicod
  • 清單:list
  • 字典:dict
  • 元組:tuple
  • 檔案:file
  • 其他類型:集合(set),當機集合(frozenset),類類型等。

是不是也有人睡着?相反,如果我直接說砂子、水泥、鋼筋、混凝土,是不是覺得親切?是以接下來将會從一磚一瓦的建築材料說Python。

萬法皆對象

:在基建領域,你所看到的構築物就是有以上提到的基礎建材組成;在Python領域對象類型就可以看做基礎建築材料,然後由不同的施工工藝産生不同的單體子產品或構造物。例如:一個函數(施工工藝)所包含的參數(基礎建材),形成一個僞代碼。

僞代碼

#圍牆條形基礎開挖

變量類型:鏟子、䦆頭、羊角碾、塊石、磚頭、水泥、混凝土

#工藝流程:

#開挖條形基坑

#夯實基礎

#抛填塊片石

#混凝土填充找平

#砌磚

如果基坑挖至設計标高,停止開挖;

如果沒有到設計标高,接着開挖。

#沒錯本節講述的就是If判斷

真代碼

判斷語句

基本用法

判斷,基于一定的條件,決定是否要執行特定的一段代碼,例如判斷一個數是不是正數:

x = 0.5
if x > 0:
    print("Hey!")
    print("x is positive")
Hey!
x is positive
           

在這裡,如果

x > 0

False

,那麼程式将不會執行兩條

print

語句。

雖然都是用

if

關鍵詞定義判斷,但與

C,Java

等語言不同,

Python

不使用

{}

if

語句控制的區域包含起來。

Python

使用的是縮進方法。同時,也不需要用

()

将判斷條件括起來。

上面例子中的這兩條語句:

print("Hey!")
    print("x is positive")
           

就叫做一個代碼塊,同一個代碼塊使用同樣的縮進值,它們組成了這條

if

語句的主體。

不同的縮進值表示不同的代碼塊,例如:

x > 0

時:

x = 0.5
if x > 0:
    print("Hey!")
    print("x is positive")
    print("This is still part of the block")
print("This isn't part of the block, and will always print.")
Hey!
x is positive
This is still part of the block
This isn't part of the block, and will always print.
           

x < 0

時:

x = -0.5
if x > 0:
    print("Hey!")
    print("x is positive")
    print("This is still part of the block")
print("This isn't part of the block, and will always print.")
This isn't part of the block, and will always print.
           

在這兩個例子中,最後一句并不是

if

語句中的内容,是以不管條件滿不滿足,它都會被執行。

一個完整的

if

結構通常如下所示(注意:條件後的

:

是必須要的,縮進值需要一樣):

if <condition 1>:
    <statement 1>
    <statement 2>
elif <condition 2>: 
    <statements>
else:
    <statements>
           

當條件1被滿足時,執行

if

下面的語句,當條件1不滿足的時候,轉到

elif

,看它的條件2滿不滿足,滿足執行

elif

下面的語句,不滿足則執行

else

下面的語句。

對于上面的例子進行擴充:

x = 0
if x > 0:
    print("x is positive")
elif x == 0:
    print("x is zero")
else:
    print("x is negative")
x is zero
           

elif

的個數沒有限制,可以是1個或者多個,也可以沒有。

else

最多隻有1個,也可以沒有。

可以使用

and

or

,

not

等關鍵詞結合多個判斷條件:

x = 10
y = -5
x > 0 and y < 0
True
not x > 0
False
x < 0 or y < 0
True
           

這裡使用這個簡單的例子,假如想判斷一個年份是不是閏年,按照閏年的定義,這裡隻需要判斷這個年份是不是能被4整除,但是不能被100整除,或者正好被400整除:

year = 1900
if year % 400 == 0:
    print("This is a leap year!")
# 兩個條件都滿足才執行
elif year % 4 == 0 and year % 100 != 0:
    print("This is a leap year!")
else:
    print("This is not a leap year.")
This is not a leap year.
           

值的測試

Python

不僅僅可以使用布爾型變量作為條件,它可以直接在

if

中使用任何表達式作為條件:

大部分表達式的值都會被當作

True

,但以下表達式值會被當作

False

  • False
  • None
  • 空字元串,空清單,空字典,空集合
mylist = [3, 1, 4, 1, 5, 9]
if mylist:
    print("The first element is:", mylist[0])
else:
    print("There is no first element.")
The first element is: 3
           

修改為空清單:

mylist = []
if mylist:
    print("The first element is:", mylist[0])
else:
    print("There is no first element.")
There is no first element.
           

當然這種用法并不推薦,推薦使用

if len(mylist) > 0:

來判斷一個清單是否為空。

土木狗的視角:

前面講述了Python對象的基本類型。終于到了文法章節,在工地上很簡單,如果達到某标準或進度,就進行下一個工序,這個看起來更像是現場監理幹的活。就如上面的僞代碼顯示的一樣,在python裡面沒有C++的諸多文法,你隻要會if判斷和for循環就可以做很多事情了,至于while循環的功能,很多都可以由循環和判斷語句嵌套(組合)完成。

課後作業(可選)

按上一節運作自己的項目,建立一個*.ipynb檔案,将上面代碼敲入運作。

dataframe判斷是否為空_Python對象類型之判斷

intumu.com:Python資料分析及可視化執行個體目錄​zhuanlan.zhihu.com

dataframe判斷是否為空_Python對象類型之判斷