import pandas as pd
file_location = '0000_學生資料範例檔_非正規.xlsx'
df = pd.read_excel(file_location)
print(len(df))
print(df.columns)
df.info()
df
Index(['學號', '出生年月日', '性別', '中文姓名', '部別', '系所'], dtype='object') <class 'pandas.core.frame.DataFrame'> RangeIndex: 17 entries, 0 to 16 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 學號 17 non-null object 1 出生年月日 17 non-null int64 2 性別 17 non-null object 3 中文姓名 17 non-null object 4 部別 17 non-null object 5 系所 17 non-null object dtypes: int64(1), object(5) memory usage: 944.0+ bytes
[1]:
學號 | 出生年月日 | 性別 | 中文姓名 | 部別 | 系所 | |
---|---|---|---|---|---|---|
0 | a 1002252 | 650502 | 女 | 黃文欣 | 大學部 | 流通管理學系 |
1 | U100 7128 | 720525 | 男 | 徐翠洋 | 大學部 | 流通管理學系 |
2 | U_1017113 | 721116 | 男 | 林欣虹 | 大學部 | 流通管理學系 |
3 | U1017117 | 730224 | 男 | 吳語群 | 大學部 | 流通管理學系 |
4 | U1017146 | 720923 | 男 | 詹俊宏 | 大學部 | 歷史學系 |
5 | U102九7140 | 690101 | 女 | 林素元 | 大學部 | 歷史學系 |
6 | U1027153 | 700503 | 男 | 洪偉誠 | 大學部 | 歷史學系 |
7 | U1017123 | 730318 | 女 | 黃玉廷 | 大學部 | 歷史學系 |
8 | U1027130 | 740802 | 女 | 黃瓊瑞 | 大學部 | 電機工程學系 |
9 | U1027156 | 730607 | 男 | 陳奕季 | 大學部 | 電機工程學系 |
10 | U1027119 | 720121 | 男 | 藍立璇 | 大學部 | 電機工程學系 |
11 | U1037130 | 690909 | 女 | 江姵利 | 大學部 | 電機工程學系 |
12 | U1037131 | 730118 | 女 | 林新云 | 大學部 | 社會學系 |
13 | U1047102 | 751123 | 女 | 詹淑玲 | 大學部 | 社會學系 |
14 | U1047113 | 750903 | 男 | 林世光 | 大學部 | 社會學系 |
15 | U1047120 | 760907 | 女 | 吳惠茹 | 大學部 | 社會學系 |
16 | U1047124 | 760227 | 男 | 陳毅文 | 大學部 | 社會學系 |
# 找出學號裏面含文數字資料
df[df['學號'].str.contains(r'\w')]['學號']
0 a 1002252 1 U100 7128 2 U_1017113 3 U1017117 4 U1017146 5 U102九7140 6 U1027153 7 U1017123 8 U1027130 9 U1027156 10 U1027119 11 U1037130 12 U1037131 13 U1047102 14 U1047113 15 U1047120 16 U1047124 Name: 學號, dtype: object
# 找出學號裏面含非文數字資料
df[df['學號'].str.contains(r'\W')]['學號']
0 a 1002252 1 U100 7128 3 U1017117 Name: 學號, dtype: object
# 將學號裏面含非文數字資料取代為""
df['學號'].str.replace(r'\W+', '', regex=True)
0 a1002252 1 U1007128 2 U_1017113 3 U1017117 4 U1017146 5 U102九7140 6 U1027153 7 U1017123 8 U1027130 9 U1027156 10 U1027119 11 U1037130 12 U1037131 13 U1047102 14 U1047113 15 U1047120 16 U1047124 Name: 學號, dtype: object
# 將學號裏面含非英文及數字資料取代為""
df['學號'].str.replace(r'[^a-zA-Z0-9]', '', regex=True)
0 a1002252 1 U1007128 2 U1017113 3 U1017117 4 U1017146 5 U1027140 6 U1027153 7 U1017123 8 U1027130 9 U1027156 10 U1027119 11 U1037130 12 U1037131 13 U1047102 14 U1047113 15 U1047120 16 U1047124 Name: 學號, dtype: object
# 學號篩選出純數字
print(df['學號'].str.replace(r'\D', '', regex=True))
# 等同上列程式碼
print(df['學號'].str.replace(r'[^0-9]', '', regex=True))
0 1002252 1 1007128 2 1017113 3 1017117 4 1017146 5 1027140 6 1027153 7 1017123 8 1027130 9 1027156 10 1027119 11 1037130 12 1037131 13 1047102 14 1047113 15 1047120 16 1047124 Name: 學號, dtype: object 0 1002252 1 1007128 2 1017113 3 1017117 4 1017146 5 1027140 6 1027153 7 1017123 8 1027130 9 1027156 10 1027119 11 1037130 12 1037131 13 1047102 14 1047113 15 1047120 16 1047124 Name: 學號, dtype: object