布林值boolean: True/False *開頭字母要大寫!!
print(type(True))
print(type(False))
    <class 'bool'>
    <class 'bool'>
> < 比大小: 關係運算符號(關係運算子)
print(type(2>1))
print(type(2<1))
    <class 'bool'>
    <class 'bool'>
== : 等於等於才是等於
1==1
    True
type(1==1)
    bool
!= :不等於
1!=1
    False
布林值 True 等於 int 1
布林值 False 等於 int 0
- True
    -1
- False
    0
邏輯運算: and/or/not
and
| 1 | 2 | and | 
| T | T | T | 
| T | F | F | 
| F | T | F | 
| F | F | F | 
print(True and True)
print(True and False)
print(False and True)
print(False and False)
    True
    False
    False
    False
or
| 1 | 2 | or | 
| T | T | T | 
| T | F | T | 
| F | T | T | 
| F | F | F | 
print(True or True)
print(True or False)
print(False or True)
print(False or False)
    True
    True
    True
    False
not
print(not(True))
print(not(False))
    False
    True
比大小+邏輯
| 1 | 2 | and | 
| 2>1 | 1==1 | T | 
| 2>1 | 1!=1 | F | 
| 2<1 | 1==1 | F | 
| 2<1 | 1!=1 | F | 
and
print(2>1 and 1==1)
print(2>1 and 1!=1)
print(2<1 and 1==1)
print(2<1 and 1!=1)
    True
    False
    False
    False
or
print(2>1 or 1==1)
print(2>1 or 1!=1)
print(2<1 or 1==1)
print(2<1 or 1!=1)
    True
    True
    True
    False
not / -
print(not 1==1)
print(not 1!=1)
    False
    True
print(- 1==1)
print(- 1!=1)
    False
    True
讀檔
點我下載:song_rank3.csv
import pandas as pd
with open('data/song_rank3.csv') as f:
    p = pd.read_csv(f)
p

用布林值 選取資料
建立一條Series 值 1 2 3 4
ps = pd.Series([1,2,3,4])
ps
    0    1
    1    1
    2    0
    3    1
    dtype: int64
建立 4個 布林值 T T F T
boolean = [True, True, False, True]
Series[bool] 只會留下True的
ps[boolean]
    0    1
    1    1
    3    1
    dtype: int64
計算排名中 獨唱曲有?首 合唱曲有?首
- 獨唱曲: art1欄 有值  and  art2欄 NaN(Not a Number) -- 空值(null) == 遺漏值 == 
- 合唱曲: art1欄 有值  and  art2欄 有值
所以其實只要看art2是否為空值 即可
| 是空值嗎 | 不是空值嗎 | 
| df.isnull( ) | df.notnull( ) | 
| df.isna( ) | df.notna( ) | 
art2非空值者
p['art2'].notnull()
    0     True
    1     True
    2     True
    3     True
    4     True
    5     True
    6     True
    7     True
    8     True
    9     True
    10    True
    11    True
    12    True
    13    True
    Name: art1, dtype: bool
a2 = p['art2'].notnull()
用df[bool] 取得 art2 不是空值的: 合唱曲
p[a2]

用 df[- bool] 取得 art2是空值的: 獨唱曲
p[-a2]

p[a2].count()
    Rank       6
    Hits       6
    Song       6
    Co         6
    art1       6
    art2       6
    Artist     6
    Date       6
    Url        6
    Artist2    6
    dtype: int64
p[a2].art1.count()
    6
p[-a2].art1.count()
    8
計算排名中 獨唱曲有8首 合唱曲有6首
內容預告:
12 [R]布林值和表格條件選取
13 畫長條圖統計
14 [Python] for迴圈 和 matplotlib.pyplot 畫線圖
14 [R]for迴圈 和 ggplot 畫線圖
15 for 迴圈 和 html網頁資料解析 迴圈 和 html網頁資料解析