iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
Python

Python和R入門語法比較系列 第 23

12 [python] 布林值和表格條件選取 [16th 鐵人 Day 23]

  • 分享至 

  • xImage
  •  

布林值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 False
1 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

1 not
T F
F T
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

https://ithelp.ithome.com.tw/upload/images/20240923/20162398z2o6AtLNXl.png

用布林值 選取資料

建立一條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]

https://ithelp.ithome.com.tw/upload/images/20240923/20162398KP1lAj9jnh.png

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

p[-a2]

https://ithelp.ithome.com.tw/upload/images/20240923/20162398ueXtvDlclH.png

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網頁資料解析


上一篇
11 [R] 取得欄位位置 [16th 鐵人 Day 22]
下一篇
12 [R] 布林值和表格條件選取 [16th 鐵人 Day 24]
系列文
Python和R入門語法比較30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言