iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
佛心分享-IT 人自學之術

走在Pandas資料操縱與分析的路上持續前進系列 第 16

DAY16 Pandas以多重條件判斷資料part2 (np延伸)

  • 分享至 

  • xImage
  •  

經過了昨天已經學會用Pandas以多重條件判斷資料,
而今天呢要做點延伸,
搭配numpy來篩選多的條件,
首先在程式的最上方先import numpy as np
後面以同樣的範例來講解,
必免混亂。

範例

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行。
這邊為了方便對照,先印出完整的資料來看。

data = {
    'MemberId': ['001', '002', '003', '004', '005', '006', '007', '008', '009', '010'],
    'Name': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
    'Height': [175, 153, 164, 168, 158, 189, 171, 166, 176, 170],
    'Weight': [80, 45, 75, 52, 68, 78, 87, 85, 67, 60],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Washington', 'New York', 'Washington', 'Utah','Washington', 'Chicago', 'New York']
}
df = pd.DataFrame(data)
print(df)

印出資料如下

  MemberId Name  Height  Weight         City
0      001    A     175      80     New York
1      002    B     153      45  Los Angeles
2      003    C     164      75      Chicago
3      004    D     168      52   Washington
4      005    E     158      68     New York
5      006    F     189      78   Washington
6      007    G     171      87         Utah
7      008    H     166      85   Washington
8      009    I     176      67      Chicago
9      010    J     170      60     New York
numpy以多重條件判斷資料

這邊先來簡單複習一下,
條件沿用昨天的,
條件一:df['Height'] >= 160判斷Height是否大於等於160;
條件二:df['Weight'] >= 70判斷Weight是否大於等於70;
而間天要用的語法如下,
np.logical_and(條件一,條件二)
若有更多條件就用逗號,隔開即可,
帶入條件語法就是
np.logical_and(df['Height'] >= 160, df['Weight'] >= 70)
最後印出回傳結果。

print(np.logical_and(df['Height'] >= 160, df['Weight'] >= 70))

印出資料如下,
資料結構為Series

0     True
1    False
2     True
3    False
4    False
5     True
6     True
7     True
8    False
9    False
dtype: bool

可以看到與昨日相比,
用的方式不同,
但可以得到相同的結果。

今日結語

今天教大家用numpy的方式取得判斷資料,
多學幾種方式也讓自己多點選擇來決定如何取得資料,
在這些延伸模組間都有著很大的彈性可以互通學習,
熟悉後才能找出最適當的方式,
所以大家要好好學習呢。


上一篇
DAY15 Pandas以多重條件判斷資料part1
下一篇
DAY17 Pandas以多重條件判斷資料part3 (isin語法)
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言