Python Pandas 列數據篩選方法彙總

數據準備:

import pandas as pd
# 假設有 5 個人,分別參加了 4 門課程,獲得了對應的分數
data = {'name' : pd.Series(['Alice', 'Bob', 'Cathy', 'Dany', 'Ella']),
        'Math_A' : pd.Series([1.1, 2.2, 3.3, 4.4, 5]),
        'English_A' : pd.Series([3, 2.6, 2, 1.7, 3]),
        'Math_B' : pd.Series([1.7, 2.5, 3.6, 2.4, 5]),
        'English_B' : pd.Series([5, 2.6, 2.4, 1.3, 3]),
     }

df = pd.DataFrame(data)
print(df)

** 運行結果:**

    name  Math_A  English_A  Math_B  English_B
0  Alice     1.1        3.0     1.7        5.0
1    Bob     2.2        2.6     2.5        2.6
2  Cathy     3.3        2.0     3.6        2.4
3   Dany     4.4        1.7     2.4        1.3
4   Ella     5.0        3.0     5.0        3.0

一、篩選得到指定的列

1.1 根據 label 選擇特定的幾列

print(df[['name', 'Math_A', 'Math_B']])
# 注意這裏是 雙重 []

運行結果:

    name  Math_A  Math_B
0  Alice     1.1     1.7
1    Bob     2.2     2.5
2  Cathy     3.3     3.6
3   Dany     4.4     2.4
4   Ella     5.0     5.0

1.2 選擇單列的兩種方式

print(df['name'])
# 注意這裏就是 單 []
print(df.name)

運行結果:

0    Alice
1      Bob
2    Cathy
3     Dany
4     Ella
Name: name, dtype: object
0    Alice
1      Bob
2    Cathy
3     Dany
4     Ella
Name: name, dtype: object

1.3 通過正則表達式選擇列

print(df.filter(regex='B$')) 
# 選擇以 'B' 爲結尾的 label

運行結果:

   Math_B  English_B
0     1.7        5.0
1     2.5        2.6
2     3.6        2.4
3     2.4        1.3
4     5.0        3.0

常用正則表達式:
在這裏插入圖片描述

二、同時對 行 和 列 進行篩選

2.1 通過切片 df.loc[ : , : ]

print(df.loc[:2,'English_A':'English_B'])
# 注意,這裏的切片 與 Python 本身的不同,包含了結尾!
# 所以這個例子中包含了 第 2 行 和 'English_B' 列

運行結果:

   English_A  Math_B  English_B
0        3.0     1.7        5.0
1        2.6     2.5        2.6
2        2.0     3.6        2.4

2.2 通過選擇 序號 選擇列 df.iloc[ : , : ]

print(df.iloc[:2 , [0,3]])
# 注意,這裏的切片沒有包含第 2 行!同時選擇了 第 0 列 和 第 3 列
# 如果想要 同時選擇 0~3 列(共4列),要使用 :4

運行結果:

    name  Math_B
0  Alice     1.7
1    Bob     2.5

2.3 對 特定 列的數據進行邏輯篩選

print(df.loc[df['English_A'] > 2, ['name', 'English_A']])
# 這裏我希望查看 'English_A' 這個科目分數 2 分以上有哪些人

運行結果:

    name  English_A
0  Alice        3.0
1    Bob        2.6
4   Ella        3.0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章