【Python】pandasを利用した文字検索の方法と性能比較

東京拠点 本橋です

私の行っているプロジェクトでは開発言語の一部にPythonを使用しています。
csvなどの表形式データを処理するのにpandasライブラリはとても便利ですね。
そしてpandasを使ってSQLと同じように検索をする事が多いと思います。

「pandasで使って文字データに対する曖昧検索の処理をしたい。
けど、どうすればいいの?」

という事があったので検証してみました。

 

pandasにも曖昧検索用に以下の関数が用意されています。
 ①・match(正規表現)
 ②・contains(正規表現)
 ③・contains(検索文字)

どれを選べば良いのでしょうか・・・
技術検証を兼ねて調査してみました。

①match関数を使って正規表現で検索
 pettern = ‘.*’ + 【検索したい文字列】 + ‘.*’
 df_1[df_1[‘文字データ項目’].str.match(pettern)]

②contains関数を使って正規表現で検索
 pettern = u'(^(?=.*’ + 【検索したい文字列】 + ‘))’
 df_1[df_1[‘文字データ項目’].str.contains(pettern)]

③contains関数を使って検索文字のみで検索
 df_1[df_1[‘文字データ項目’].str.contains(【検索したい文字列】)]

・性能比較

 データ量:50項目20万行の中から80行のデータ抽出に対して実施

・結果

 ①・match(正規表現) ・・・・ 133ms
 ②・contains(正規表現)・・・・ 156ms
 ③・contains(検索文字)・・・・  96ms

containsは曖昧検索にも対応している関数なので
わざわざ正規表現にすることでかなり遅くなるようです
今回は正規表現で難しい事をしたいわけでもないので、
contains(検索文字)を採用!

運動不足なITエンジニアのマラソン奮闘記

はいさ~い!沖縄開発部の佐久本です。
沖縄は少しずつ寒さもなくなり、過ごしやすい季節となりました。

IT業界は運動不足な人が多いイメージですが、私の趣味はマラソンです。
過去にはフルマラソン完走経験もありますが、最近走るのはサボっています。

練習していない中、マラソン大会にはちゃっかりと参加していますが、
走り終わった後に、もっと練習しておけばよかったと後悔します。

今回はIT企業らしくなく、技術的な話ではありませんが、
沖縄で参加した方が良いマラソンイベントを紹介します。
※離島のマラソンには参加していないので偏った意見ですが・・・

(1)NAHAマラソン
沖縄で一番有名ではないかと思うNAHAマラソンです。
毎年12月に約3万人も人が参加する大きなイベントです。

沿道の方の応援も多く、7キロ付近で西城秀樹のYMCAが流れて
みんなで走りながらYMCAをやるという奇妙な空間があります(笑)
最初に参加したときは、恥ずかしながらやってましたが、今では違和感なくやっています(笑)
コスプレをしている人もたくさん居て、走りつつも見て楽しむマラソンだと思います。

個人的には12月の暑いマラソンとなるため、完走が難しいです。
過去に4回出てますが、完走は1回しかしていません。
ちゃんと練習してないからだと思いますが・・・

那覇マラソン公式サイト
http://www.naha-marathon.jp/

(2)尚巴志ハーフマラソン
次は、毎年11月頃に行われる尚巴志ハーフマラソンです。

NAHAマラソンのように華やかなマラソンではありませんが、
新里坂(シンザトビラ)という山登りをしているような勾配のある坂と
ニライカナイ橋という海がよく見えるポイントがあります。
綺麗な海の景色を見ながら走るマラソンは格別です!!!

あまり海が見えている写真が無かったのですが、オーシャンビューを楽しむことができるはずです。。。

尚巴志ハーフマラソン公式サイト
http://www.shouhashi.jp/

(3)あやはし海中ロードレース
次は、毎年4月頃に行われるあやはし海中ロードレース(ハーフマラソン)です。

こちらは東洋一の全長4.7Kmの「海中道路」(大きな橋)を渡るマラソンとなります。

NAHAマラソンや尚巴志ハーフマラソンに比べて平坦なコースで、
橋から眺める海の景色や磯のかおり感じながら走ることができるマラソンになります。
楽しく海をゆっくり眺めながら走りたい方におすすめのマラソンです。

あやはし海中ロードレース公式サイト
http://www.i-sam.co.jp/ayahashi_roadrace/

ということで、おすすめのマラソンイベント3つを紹介しました。
もし、沖縄でマラソンイベントに参加したい方が居れば、ぜひ参加してみてください。

技術的な話も今後は書いていきたいと思いますが、
沖縄の面白いところもどんどんアップしていきたいと思いますので、ご期待ください。