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