Quarto による DataFrame の表示テスト
blog
tech
tech-quarto
Pandas の DataFrame をウェブサイト一覧表作成に転用するための実験記事です。
以下のように使用すれば CSV ファイルでタグを付与した形でウェブサイト一覧を管理できます。
1. ライブラリのインストール
#| include: true
!python3 -m pip install pandas
!python3 -m pip install --upgrade jinja2
2. 関数定義
#| include: true
import numpy as np
import pandas as pd
= pd.read_csv('../assets/20240907-quarto-df/quarto-df.csv')
df_all
def make_clickable(url, title):
return f'<a href="{url}">{title}</a>'
def extract_tag(tag, df=df_all):
= df[df['Tags'].str.contains(tag)].copy()
_df
# 欠損埋め
= _df.fillna({'Date': '9999-12-31'})
_df = _df.fillna('-')
_df
# HACK: __init__.py を強調させないためのワークアラウンド
'Title'] = _df['Title'].replace(
_df['__init__.py', '__ init __.py', regex=True
)
# 日付とクリック可能なページ名の表示
= _df[['Date', 'Title', 'URL']].sort_values(
_df 'Date', 'Title'], ascending=[False, True]
[
)= np.arange(1, len(_df) + 1)
_df.index 'Website'] = _df.apply(
_df[lambda row: make_clickable(row['URL'], row['Title']), axis=1
)= _df[['Date', 'Website']].to_html(escape=False, index=False)
_df return _df
3. CSV 内容確認
!cat ../assets/20240907-quarto-df/quarto-df.csv
4. TagA
#| code-fold: false
'TagA') extract_tag(
5. TagB
#| code-fold: true
'TagB') extract_tag(