今天我們來介紹格式化時間相關型別的函數,分別是:
GT.fmt_date())。GT.fmt_time())。GT.fmt_datetime())。以下將繼續使用df_demo為範例說明:
GT.fmt_date()GT.fmt_date(self, columns=None, rows=None, date_style='iso', pattern='{x}', locale=None)
GT.fmt_date()可以接受下列三種輸入:
date 型別。datetime 型別。date_style參數則可以讓我們指定格式化的型態,目前共有十七種可以挑選。舉例來說,我們可以設定date_style="wday_month_day_year"來格式化「"date"」欄位(Python date 型別):
(GT(df_demo).fmt_date("date", date_style="wday_month_day_year"))

又或者先將「"date"」欄位轉換為ISO-8601型式後,再設定date_style="day_month_year"對其進行格式化:
(
GT(df_demo.with_columns(pl.col("date").dt.strftime("%Y-%m-%d"))).fmt_date(
"date", date_style="day_month_year"
)
)

GT.fmt_time()GT.fmt_time(self, columns=None, rows=None, time_style='iso', pattern='{x}', locale=None)
GT.fmt_time()可以接受下列兩種輸入:
time 型別。time_style參數則可以讓我們指定格式化的型態,目前共有五種可以挑選。舉例來說,我們可以設定time_style="h_m_s_p""來格式化「"time"」欄位(Python time 型別):
(GT(df_demo).fmt_time("time", time_style="h_m_s_p"))

又或者先將「"time"」欄位轉換為ISO-8601型式後,再設定time_style="h_m_p"對其進行格式化:
(
GT(df_demo.with_columns(pl.col("time").dt.strftime("%H:%M:%S"))).fmt_time(
"time", time_style="h_m_p"
)
)

GT.fmt_datetime()GT.fmt_datetime(self, columns=None, rows=None, date_style='iso', time_style='iso', sep=' ', pattern='{x}', locale=None)
GT.fmt_datetime()可以接受下列兩種輸入:
datetime 型別。date_style的設定與GT.fmt_date()一樣,共有十七種;而time_style的設定與GT.fmt_time()一樣,共有五種。舉例來說,我們可以設定date_style="year.mn.day""及time_style="iso"來格式化「"datetime"」欄位(Python datetime 型別):
(
GT(df_demo).fmt_datetime(
"datetime",
date_style="year.mn.day",
time_style="iso",
)
)

又或者先將「"datetime"」欄位轉換為ISO-8601型式後,再設定date_style="wd_m_day_year"及time_style="iso-short"對其進行格式化:
(
GT(
df_demo.with_columns(
pl.col("datetime").dt.strftime("%Y-%m-%d %H:%M:%S")
)
).fmt_datetime(
"datetime",
date_style="wd_m_day_year",
time_style="iso-short",
)
)

有時候DataFrame內會有著許多與時間有關的欄位,例如股票交易記錄。此時如果想要選到特定的時間型別進行格式化時,請別忘了Polars selector這個超好用的工具。
(GT(df_demo).fmt_date(cs.date(), date_style="m_day_year"))

(GT(df_demo).fmt_time(cs.time(), time_style="h_m_p"))

(GT(df_demo).fmt_datetime(cs.datetime()))
