はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

python

Pythonのconcurrent.futuresのシンタックスに入門してみた(並列タスク実行)

はじめに 以前、PythonのIO関連の非同期処理をうまくコントロールして全体スループットをあげるということで、次の記事を投稿しました。 itdepends.hateblo.jp 今回はもっとストレートに、concurrent.futuresという並列タスク実行の標準パッケージがあるよう…

Pythonのopen関数での改行の扱い備忘録(newlineオプション、readlines、readline...)

Pythonのopen組み込み関数では、「改行」に関して「優しい」仕様になっています。 しかし、私のような日曜プログラマは半年に1回ぐらいやっちまうのですが、稀にこの気遣い仕様を忘れて、ハマってしまうこともあるので、ここに備忘録として記しておきます。 …

最近のPythonでのコンカレント(並列)の非同期処理 async/await ・asyncioについて(ver 3.8で確認)

Pythonの非同期処理については、いろいろ歴史・経緯があるようです。 しかしながら、皆さんのおかげで、部外者が安易に言うのもはばかられますが、Python3.7あたりから、私のような日曜エンジニアでもおいしいところにありつけるようになってきた様子だった…

文字列の配列に対して、各文字列の前方の共通部分を抜き出すスニペット(Python、JavaScript)

文字列の配列に対して、各文字列の前方の共通部分(のみ)を抜き出すという例です。 Python等であれば、標準ライブラリなどにそのものズバリのものがありそうなという気もしましたが、ぱっと見見つけられませんでしたので、自作しました。 (この程度のもの…

Pythonで実装したJSONのdiffトイスクリプト(自分コピペ用)

下記の記事と似た主旨のオレオレメモです。 itdepends.hateblo.jp JSONファイルのdiffって有名ライブラリなどでは少しリッチすぎるかなという時に、機能が劣っていたり割り切りがあっても、自分で取り回しやすい自作のイディオムが欲しくなったのでコピペ用…

Pythonのネストされたdictに「a.b.c.d」のようなJavaScript風のアクセスを行う小品のスニペット例 2nd

下記の記事の続きです。自分でも続きがあったのかと思っておりますが、今回は、前回と同じ要領で、あるdictについて、特定のプロパティ(複数可能)を抜き出したdictを得るというミニDSL風の関数を作成しました(以下 hoge2.py)。 itdepends.hateblo.jp なお…

Pythonのネストされたdictに「a.b.c.d」のようなJavaScript風のアクセスを行う小品のスニペット例

Pythonのdict型のようなデータの配下の特定のプロパティに、「a.b.c.d」のような表記でアクセスできると、試験ツールやチェックツールで確認したいパターンを外部から入力として与えやすくなにかと便利だと感じています。 こういった使い捨てツールなどのた…

pandas.read_htmlでぶち抜きtableタグに関する今更の気づき

pandas.read_htmlについて、rowspanやcolspanで実現されているぶち抜き表についても、よろしく整然データとしてのDataFrameに変換できるということを知ったので、その感想です。 pandas.read_htmlについて pandas.read_htmlはhtml中のtableに特化したスクレ…

Elasticsearchで検索〜pandasのDataFrameに格納(私的なスニペット)

Elasticsearchとpandasという組み合わせでいうと、Elasticsearchの公式サイトでも紹介があるeland | Elasticなのかなと思います。 しかしながら、ElandでElasticsearchの検索クエリをかませて、それをDataFrameに入れる方法が(おそらくそのような機能を具備…

Webサイトのアクセスログのよくあるかもしれない集計パターンの自分用覚書(Python/Pandas関連)

Webサイトのアクセスログの集計のワンライナーのようなものについては、かつてはいろいろ思うところがありました。 思うというか苦しめられておりました。 しかし、いまや 自分が語るには、この世界が発展・複雑化しすぎており、世界の片隅でのひとりごとと…

Python: wordcoludでタグクラウド画像生成

↓ Pythonのタグクラウド生成ライブラリで有名なword cloudを使って、まさにこんな感じの画像ファイルを出力します。 amueller.github.io github.com 日本語の場合、本来は、タグクラウドの元になるテキストについて統計的な処理や分かち書きをするところをふ…

Python: Pillowで画像にテキスト埋め込み(元画像なし版)

↓ Pythonのプログラムを実行して、まさにこんな感じの画像ファイルを出力します。 2020年の現在においては、Pillowというライブラリがデファクトのようです。 hoge$ pip3 list ... Pillow 7.1.2 ... pillow.readthedocs.io お作法のハンズオンとしては、次が…

openpyxl のさわりのサンプルコード(PythonでEXCELファイルを扱う一例)

はじめに 感染症の例を見ていると、可視化やそもそも現場でのデータ収集というのはなかなか難しいなと感じる次第です。 大半の混乱は一元化や入力の標準化などの情報化の定石で解決する部分もあるでしょうが、今回のような走りながら速記するというような状…

sumy で要約(spaCy、GiNZA) を試してみた: Pythonで自然言語処理にフリーライド

要約・キーフレーズ抽出について sumy は、Pythonで実装された、抽出型のドキュメント要約ライブラリです。 3行でまとめて! ってやつですね。 ドキュメント中の最重要と思われるセンテンスを抜き出すことで、元の内容のエッセンスを抽出することをめざしま…

diffの変種っぽい視点で見るPandasのイディオム

はじめに PandasのEDAに便利な部分を、データチェックに見立てて利用すると、目的外使用かもしれないけど、便利かも? という視点でのPandasのイディオムの寄せ集めです。 (よって、そう思って見なければ、Pandasの中途半端な入門例未満の断片集だったりし…

Pandas(他)のEDA前によく使う(かもしれない)私的前処理スニペット集

はじめに データサイエンス的な世界に限らずですが、本処理以上に「前処理」が勝負というところがあります。 ここで、「本格的な『前処理』の更に前段の『前処理』が必要になった」という経験はありませんか。 まあ、単なる言葉遊びに過ぎないところもありま…

Python difflib 覚書

概要 Pythonのdifflibのうち、私のような軟派な用途にあたり便利だな・面白いなと思ったものをまとめてみました。 概要 オレ様チョイス 3大difflibライブラリ (1) difflib.SequenceMatcher・・・ ratio() (2) difflib.get_close_matches() (3) difflib.HtmlD…

Pythonの集合演算の演算子チートシート風の何か

Pythonでの集合演算の演算子(和、差、積...)のチートシートです。 ひとつずつではなく、一覧の絵にしてみたところがウリですが、言語仕様の焼き直しなのでそれ以上のものではありません。あしからず。 ◆確認用コピペ用 s1 = {1,2,3,4,5} s2 = {1,2,3,4,5} …

BeautifulSoupの隣接ノード取得系のメソッドのまとめ および 他(コメント取得やテキスト取得、SoupStrainer)

BeautifulSoupについては、find系やselect系でのオブジェクト取得により取り回していくのが基本だとは思いますが、parentやnext_siblingなど隣接取得系(造語です)についても、たまに使うにせよ、使おうとするとどうだっけというところで悩ましいので、これ…

Pandas pivot、pivot_table、melt、stack、wide_to_longのシェイプ変更のイメージ(tidyデータ)

PandasにおけるDataFrameのシェイプ変更のメソッドである、 pivot、pivot_table、melt、stack、wide_to_longについて、これらをまとめて図解してみました。 実例 import pandas as pd import io df = pd.read_csv(io.StringIO(""" year,season,num 2010,春,4…

Pandas MultiIndexのオペレーションメモ

Pandasでgroupbyなどの際に思わず発生するMultiIndex。 いやもちろん、思わず...ではなくて正規の仕様なのですが、しばらく間が空くと少し勘を取り戻すのに苦労する仕様な気がします。 まあ間が空いていても空いてなくても、私の場合、reset_index()してしま…

時間がない方のためのPandas plot、seabornでの複数列の比較に向いたグラフ簡単表示例

概要 itdepends.hateblo.jp この記事は、上記の記事のおまけです。 Python/Pandasの DataFrameの複数の列の値の関係や比較を可視化したい時によく使われるであろうグラフ表示方式のうち比較的シンプルなプロット方法のスニペットをまとめました。 公式ドキュ…

Pandasのplot関数で複数の別種類のグラフをまとめて一枚に表示(pylot.subplots関数、axパラメータなど)

この記事の目的/概要 itdepends.hateblo.jp 上記の記事で、Pandasのplotの簡単なまとめをしました。見栄えの工夫やより高度な可視化にはいろいろ探求の道があると思いますが、私の場合、見栄えよりも次に必要になったのは、折れ線グラフ版、棒グラフ版などと…

続:Elasticsearch のバルクロード用JSON Lines ファイルをselectする toy スクリプト(ソートなど追加)

概要 この記事は次の記事の続きです。Elasticsearchのバルクロード用のJSON LinesファイルをイメージしたJSONの簡易フィルターコマンド相当のPythonでのツール例です。 経緯は下記の記事のとおりです。いわゆる拙作ではありますが、前回記事を書いたのちに自…

Elasticsearch のバルクロード用JSON Lines ファイルをselectする toy スクリプト

概要 Elasticsearchのバルクロードは次の形式なのですが、ふと必要にかられてこんな形の2行1ペアのJSON Linesファイルから、なんちゃってselectを行うトイプログラムを作成してみました。 PUT hockey/_bulk?refresh {"index":{"_id":1}} {"first":"johnny","…

Pythonで簡易HTTP静的ファイルサーバ -- 細工用にWSGIをひっかける

概要 この記事は技術的チャレンジ...というよりは、他の用途の都合、PythonのWSGIのライブラリのさわりを目的外(?)使用した例です。 という意味で、WSGIの説明などではありませんのでご了承ください。 内容としては、 WSGIの仕組みで、 ワンライナーではない…

Python itertools.groupby、itertools全般(accumulate他)、collectionsのちょっとつまみ食い

この記事について itdepends.hateblo.jp Python/Pandasのgroupbyについては、上記の前の記事で大口(?)を叩いていしまいましたが、そもそも標準ライブラリのitertoolsにgroupbyというメソッドがあるのでこれを機会に入門してみました。 itertoolsのgroupbyお…

Python/Pandas演習(dictでグループ化相当)

Python/Pandasにはgroupbyの機能があるのですが、少しトリッキーなグループ化を考えてみたメモです。 複雑な名寄せ・グループ化のニーズ 何かの集計や名寄せの際に、複数のキーやキー自体がネストされた構造化データ相当のデータで名寄せしたいということは…

1対Nのデータを結合してネストオブジェクトのJSON Lines出力のイディオム(Python/ Pandas) my 手グセ紹介

たまたま自分のまわりだけかもしれませんが、次項に示した例のように、1対Nのデータを結合してネストオブジェクトのJSON Lines出力をざっくりで良い精度でやってしまいたいという例にしばしば遭遇します。 ブームの時に手グセになっていたり、その案件でガチ…

Pythonオレオレ相対パス/ルート相対パスの小品

はじめに このブログは総じて自分メモなのですが、その中でも次の過去記事の応用(?)として、自分の手に馴染むルート相対/相対パス周りのオレオレミニライブラリを作成したのでそのメモです。 itdepends.hateblo.jp itdepends.hateblo.jp なぜこの記事なのか …