經過了這幾天,
大家應該都會使用Pandas來對資料進行判斷了,
而今天要延續先前的知識,
將判斷的條件符合的資料取出,
這裡也會簡單複習一下前幾天的東西。
首先,先建立一個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
前面學會了很多判斷式回傳boolean array
現在要將資料以條件判斷取出對應資料,
當取得判斷為True的資料就會被列出,
語法就是df[boolean array]
,
無論單一或多重條件皆是如此。
這邊先來簡單複習一下,
語法df['City'] == 'Chicago'
可以判斷City是否為Chicago,
如此一來便可取得各筆資料對應的布林值陣列(boolean array),
而這邊再將資料做讀取並以上面判斷好的布林值陣列帶入,
取得判斷為True的資料,
最後印出回傳結果。
print(df[df['City'] == 'Chicago'])
印出資料如下,
資料結構為DataFrame
。
MemberId Name Height Weight City
2 003 C 164 75 Chicago
8 009 I 176 67 Chicago
從過去(DAY14 Pandas以單一條件判斷資料)的範例可以得知
index為2和8的資料的布林值為True,
所以在這可看到列出了index為2和8的資料。
這邊先來簡單複習一下,
語法(df['Height'] >= 160) & (df['Weight'] >= 70)
可以判斷
Height是否大於等於160且Weight是否大於等於70的資料,
取得判斷為True的資料,
最後印出回傳結果。
print(df[(df['Height'] >= 160) & (df['Weight'] >= 70)])
印出資料如下,
資料結構為DataFrame
。
MemberId Name Height Weight City
0 001 A 175 80 New York
2 003 C 164 75 Chicago
5 006 F 189 78 Washington
6 007 G 171 87 Utah
7 008 H 166 85 Washington
從過去(DAY15 Pandas以多重條件判斷資料part1)的範例可以得知布林值為True的資料,
對照可驗證列出資料的正確性。
經過這幾天學會了以單一和多個條件判斷取出對應資料,
這些判斷在整理資料時都是免不了必須用到的,
所以大家要好好習慣這些判斷式呢。