Pandas 將民國年月日轉為西元年月日
範例檔案為虛構資料,特此聲明
datetime 代碼格式定義
資料來源:Python官方文件 https://docs.python.org/zh-tw/3/library/datetime.html
代碼 | 含意 | 範例 |
---|---|---|
%a | 當地工作日的縮寫。 | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) |
%A | 當地語系化的星期中每日的完整名稱。 | Sunday, Monday, …, Saturday (en_US);Sonntag, Montag, …, Samstag (de_DE) |
%w | 以十進位數字顯示的工作日,其中0表示星期日,6表示星期六。 | 0, 1, …, 6 |
%d | 補零後,以十進位數字顯示的月份中的一天。 | 01, 02, …, 31 |
%b | 當地月份的縮寫。 | Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE) |
%B | 當地語系化的月份全名。 | January, February, …, December (en_US);Januar, Februar, …, Dezember (de_DE) |
%m | 補零後,以十進位數字顯示的月份。 | 01, 02, …, 12 |
%y | 補零後,以十進位數字表示的,不帶世紀的年份。 | 00, 01, …, 99 |
%Y | 十進位數字表示的帶世紀的年份。 | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
%H | 以補零後的十進位數字表示的小時(24 小時制)。 | 00, 01, …, 23 |
%I | 以補零後的十進位數字表示的小時(12 小時制)。 | 01, 02, …, 12 |
%p | 當地語系化的 AM 或 PM 。 | AM, PM (en_US);am, pm (de_DE) |
%M | 補零後,以十進位數字顯示的分鐘。 | 00, 01, …, 59 |
%S | 補零後,以十進位數字顯示的秒。 | 00, 01, …, 59 |
%f | Microsecond as a decimal number, zero-padded to 6 digits. | 000000, 000001, …, 999999 |
%z | UTC 偏移量,格式為 ±HHMM[SS[.ffffff]] (如果是簡單型物件則為空字串)。 | (空), +0000, -0400, +1030, +063415, 30712.345216 |
%Z | 時區名稱(如果物件為簡單型則為空字串)。 | (空), UTC, GMT |
%j | 以補零後的十進位數字表示的一年中的日序號。 | 001, 002, …, 366 |
%U | 以補零後的十進位數字表示的一年中的周序號(星期日作為每週的第一天)。 在新的一年中第一個星期日之前的所有日子都被視為是在第 0 周。 | 00, 01, …, 53 |
%W | 以十進位數字表示的一年中的周序號(星期一作為每週的第一天)。 在新的一年中第一個第期一之前的所有日子都被視為是在第 0 周。 | 00, 01, …, 53 |
%c | 當地語系化的適當日期和時間表示。 | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) |
%x | 當地語系化的適當日期表示。 | 08/16/88 (None);08/16/1988 (en_US);16.08.1988 (de_DE) |
%X | 當地語系化的適當時間表示。 | 21:30:00 (en_US);21:30:00 (de_DE) |
%% | 字面的 ‘%’ 字元。 | % |
from google.colab import files
uploaded = files.upload()
Upload widget is only available when the cell has been executed in the current browser session. Please rerun this cell to enable.
Saving 0000_學生資料範例檔.xlsx to 0000_學生資料範例檔.xlsx
import io
import pandas as pd
import numpy as np
df = pd.read_excel(io.BytesIO(uploaded['0000_學生資料範例檔.xlsx']))
print(len(df))
df
17
Out[5]:
學號 | 出生年月日 | 性別 | 中文姓名 | 部別 | 系所 | |
---|---|---|---|---|---|---|
0 | U1002252 | 650502 | 女 | 黃文欣 | 大學部 | 流通管理學系 |
1 | U1007128 | 720525 | 男 | 徐翠洋 | 大學部 | 流通管理學系 |
2 | U1017113 | 721116 | 男 | 林欣虹 | 大學部 | 流通管理學系 |
3 | U1017117 | 730224 | 男 | 吳語群 | 大學部 | 流通管理學系 |
4 | U1017146 | 720923 | 男 | 詹俊宏 | 大學部 | 歷史學系 |
5 | U1027140 | 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['出生年月日'].astype(str).str[:2].astype(int) + 1911).astype(str) + "/" +
(df['出生年月日'].astype(str).str[2:4]) + "/" + (df['出生年月日'].astype(str).str[4:])
)
df
學號 | 出生年月日 | 性別 | 中文姓名 | 部別 | 系所 | |
---|---|---|---|---|---|---|
0 | U1002252 | 1930/76/ | 女 | 黃文欣 | 大學部 | 流通管理學系 |
1 | U1007128 | 1930/83/ | 男 | 徐翠洋 | 大學部 | 流通管理學系 |
2 | U1017113 | 1930/83/ | 男 | 林欣虹 | 大學部 | 流通管理學系 |
3 | U1017117 | 1930/84/ | 男 | 吳語群 | 大學部 | 流通管理學系 |
4 | U1017146 | 1930/83/ | 男 | 詹俊宏 | 大學部 | 歷史學系 |
5 | U1027140 | 1930/80/ | 女 | 林素元 | 大學部 | 歷史學系 |
6 | U1027153 | 1930/81/ | 男 | 洪偉誠 | 大學部 | 歷史學系 |
7 | U1017123 | 1930/84/ | 女 | 黃玉廷 | 大學部 | 歷史學系 |
8 | U1027130 | 1930/85/ | 女 | 黃瓊瑞 | 大學部 | 電機工程學系 |
9 | U1027156 | 1930/84/ | 男 | 陳奕季 | 大學部 | 電機工程學系 |
10 | U1027119 | 1930/83/ | 男 | 藍立璇 | 大學部 | 電機工程學系 |
11 | U1037130 | 1930/80/ | 女 | 江姵利 | 大學部 | 電機工程學系 |
12 | U1037131 | 1930/84/ | 女 | 林新云 | 大學部 | 社會學系 |
13 | U1047102 | 1930/86/ | 女 | 詹淑玲 | 大學部 | 社會學系 |
14 | U1047113 | 1930/86/ | 男 | 林世光 | 大學部 | 社會學系 |
15 | U1047120 | 1930/87/ | 女 | 吳惠茹 | 大學部 | 社會學系 |
16 | U1047124 | 1930/87/ | 男 | 陳毅文 | 大學部 | 社會學系 |