Skip to main content

polarsの日本向けのplugin library

Project description

polars-japanese: Polars 日本語拡張ライブラリ (Polars Japanese Extension Library)

PyPI version License: MIT

Polars DataFrame/Expression API に、日本語処理や日本固有の操作に関連する機能を追加する拡張ライブラリです。

(This is an extension library that adds functionalities related to Japanese text processing and Japan-specific operations to the Polars DataFrame/Expression API.)

概要 (Overview)

polars-japanese は、データ分析ライブラリ Polars の強力な機能を活用しつつ、日本語特有のデータ処理(全角/半角変換、漢数字変換、和暦変換、祝日判定など)を容易に行えるように設計されています。 Polars の Expression API を拡張し、.ja アクセサを通じて直感的にこれらの機能を利用できます。

ドキュメント (Documentation)

https://polars-japanese.readthedocs.io/ja/latest/

インストール (Installation)

pip install git+https://github.com/tanaka-jin/polars-japanese

使い方 (Usage)

polars-japanese をインポートすると、Polars の Expression API に .ja アクセサが追加されます。

import polars as pl
import polars_japanese
from datetime import date

df = pl.DataFrame({
    "kanji_num": ["千二百三十四", "五十六", None],
    "wareki_str": ["令和6年1月1日", "平成1年12月31日", "昭和45年12月04日"],
    "seireki_date": [date(2024, 4, 18), date(1989, 1, 8), date(1970, 10, 10)],
    "text_zen": ["Polars", "データ", "123"],
})

df = df.select(
    # 漢数字変換
    pl.col("kanji_num").ja.to_number().alias("num_from_kanji"),
    # 和暦/西暦変換
    pl.col("wareki_str").ja.to_datetime().alias("seireki_from_wareki"),
    # 祝日判定
    pl.col("seireki_date").ja.is_holiday().alias("is_holiday"),
    # 全角/半角変換
    pl.col("text_zen").ja.to_half_width().alias("to_half"),
    pl.col("text_zen").ja.normalize().alias("normalized"),
)

print(df)

# ┌────────────────┬─────────────────────┬────────────┬─────────┬────────────┐
# │ num_from_kanji ┆ seireki_from_wareki ┆ is_holiday ┆ to_half ┆ normalized │
# │ ---            ┆ ---                 ┆ ---        ┆ ---     ┆ ---        │
# │ i64            ┆ date                ┆ bool       ┆ str     ┆ str        │
# ╞════════════════╪═════════════════════╪════════════╪═════════╪════════════╡
# │ 1234           ┆ 2024-01-01          ┆ false      ┆ Polars  ┆ Polars     │
# │ 56             ┆ 1989-12-31          ┆ false      ┆ データ     ┆ データ     │
# │ null           ┆ 1970-12-04          ┆ true       ┆ 123     ┆ 123        │
# └────────────────┴─────────────────────┴────────────┴─────────┴────────────┘

df.ja.to_csv("output_sjis.csv", encoding="shift_jis")

主な機能 (Features)

  • 全角/半角変換・正規化:
    • to_half_width(): 全角文字を半角文字に変換します (Rust Plugin)。
    • to_full_width(): 半角文字を全角文字に変換します (Rust Plugin)。
    • normalize(): Unicode正規化 (NFKC) を行い、さらに日本語テキストでよく問題になる記号やスペースを統一的に処理します(例: ハイフン類を半角 - に、チルダ類を全角 に、スペースを半角スペース に統一)。
  • 漢数字変換: 文字列中の漢数字をアラビア数字に変換します (Powered by kanjize)。
    • to_number(): 漢数字(例: "千二百三十四")を整数(例: 1234)に変換します
    • to_kanji(): 数値を漢数字に変換します。config引数でKanjizeConfigurationを指定できます。
  • 和暦/西暦変換: 和暦文字列と西暦日付/文字列を相互に変換します (Powered by japanera)。
    • to_wareki(): 西暦日付/文字列を和暦文字列(例: "令和6年10月10日")に変換します。format引数で出力フォーマットを指定できます。raise_error引数でエラー発生時の挙動を制御できます。
    • to_datetime(): 和暦文字列を西暦日付に変換します。format引数で入力フォーマットを指定できます。raise_error引数でエラー発生時の挙動を制御できます。
  • 祝日判定: 指定された日付が日本の祝日かどうかを判定します (Powered by jpholiday)。
    • is_holiday(): 日付が祝日であれば True を返します
    • is_business_day(): 日付が営業日であれば True を返します
  • CSVエンコーディング指定出力: DataFrameを指定したエンコーディングでCSVファイルに出力します。
    • DataFrame.ja.to_csv(path, encoding="shift_jis", **kwargs): DataFrameをCSVファイルに書き込みます。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polars_japanese-0.1.0.tar.gz (83.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polars_japanese-0.1.0-cp38-abi3-manylinux_2_34_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

File details

Details for the file polars_japanese-0.1.0.tar.gz.

File metadata

  • Download URL: polars_japanese-0.1.0.tar.gz
  • Upload date:
  • Size: 83.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for polars_japanese-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d8ab80ee9c4df49057970fe5eedf55b653268abc12439e05a9e5022d526a437c
MD5 e23a8907e1f310bbeb453ffc5e33b57b
BLAKE2b-256 7294e8dafa0b8800a668a413518a40dc14c43a2787d3373dca3ea481aa0e57cd

See more details on using hashes here.

File details

Details for the file polars_japanese-0.1.0-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for polars_japanese-0.1.0-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d1d3dc511612beab2339f4d05c74495d496722dbb9320e59e0161f7ad2d268f1
MD5 71182beabcaf2c5639fa3a373a7eef03
BLAKE2b-256 6f8d7b669e67c593954ec8876a867aadb1d401bf5b79689f6d18c21bffb5e1f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page