St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

Python

【BigQuery】クエリの単体テストを書こうと思ったけど壁が厚くてどうしようか悩んでいる話

こんにちは。久しぶりのブログ投稿になってしまったのですが、今日は「クエリの単体テストを書こうと思ったけど、壁が厚くてどうしようかなと思った話」を書きたいと思います。はじめに言っておきますが、この記事は特に何か解決策があるわけでもなんでもな…

【Pandas】週の曜日の始まりが違う場合の週ごとの日付を取得する方法があったのでまとめる

こんにちは。 モチベーション 今開発で、週の曜日の始まりが違うケースがあって、でも一年間の週の通し番号ごとに集計をしたい、みたいな感じのことがしたく、週の曜日始まりが違う曜日のスタートで、週ごとの日付を取得したいなという気持ちがありました。p…

【Python】Pandasでcross joinをする方法

こんにちは。今日は、pandasでcross joinをする方法について書きたいと思います*1。 やりたいこと df_a, df_bの二つのデータフレームがあったとして、その二つのデータフレームをcross joinしたいなという気持ちになったとします。ただ、Pandasにはこれをそ…

自然言語処理向けのデータ作成ツールの「doccano」を使ってみたので、まとめる

こんにちは。最近、仕事で自然言語処理関係のプロジェクトをやっているのですが、その関係でdoccanoというツールを触ってみることになったので、使い方とかをまとめておきます。 doccanoとは doccanoとは、オープンソースのテキストアノテーションツールです…

【kedro】gcsのファイルを読み込むときのcredentialsの設定方法

こんにちは。kedroのドキュメントにもし書いてあったらすみませんなのですが、地味にハマったので、備忘録的に書いておきます。 やりたいこと gcsにあるデータを読み込んで、それを処理のなかで使いたいです。 設定方法 credentials系の情報は、 conf/local/…

【 Kedro】Kedroに入門したのでまとめる

こんにちは。最近、Kedroと言う機械学習向けのパイプライン構築用のツールを使ってみたので、それについてまとめます。 Kedroとは? 概要 Kedro は QuantumBlack というデータ分析企業 が公開している、プロダクションレディなデータ分析用ワークフロー構築…

【Python】Pandasのメモリ使用量の削減方法のまとめ

こんにちは。今、とある事情でPandasのメモリ使用量の削減を仕事でしているのですが、その時に改めてPandasのメモリ使用量の削減方法を調べたので、まとめてみます。 メモリ使用量の確認 今回、タスクを実施するにあたってメモリ使用量がどのくらいかかって…

【Python】Pandasで大きなcsvファイルを読み込む

こんにちは。最近、少し重めのデータを扱うことがありまして、Pandasで読み込もうとしたところ、メモリエラーを食いました。良い機会なので大きめのcsvファイルを扱う時に行うことを自分用メモとしてまとめておこうと思います。 方法一覧 大きめのファイルを…

【Python】Pythonの高速化のためのNumbaのTips

こんにちは。最近、仕事でNumbaを使ったコードと対峙しまして、良い機会だと思って、NumbaのTipsをまとめてみました 本家 Numba: A High Performance Python Compiler Numbaとは PythonやNumpyのコードを高速な機械語に変換するためのJITコンパイラのことを…

【AWS】SAMを使ってLambdaでAuroraを自動で停止させる

こんにちは。先日、開発チームのコスト削減の一環で、開発環境のAuroraをDailyで確認し、起動されていたら、自動的に停止するスクリプトを書きました。そんなに大したことではないのですが、なんかまたありそうなネタなので、自分のブログでまとめておこうか…

【Python】テスト駆動開発(TDD)について

こんにちは。最近、「テスト駆動Python」という本を読んで、「弊社の開発チームでは取り入れていませんが、そういえばテスト駆動開発とかもあるなぁ」、と思って、ぼんやりとは知っていたものの、ちゃんと調べたことがなかったので、調べてみました*1。 テス…

【Python】「テスト駆動Python」を読んだ

こんにちは。最近、テスト周りについてがっつり調べていたのですが、今やっているプロジェクトでpytestを使っているので、その周辺でいい本ないかなぁと思って読んでみました。この記事では、その本の紹介をしてみたいと思います。 今回読んだ本 今回読んだ…

【Python】使用メモリを計測するためにmemory_profilerを使う

こんにちは。Pythonでメモリ使用量を調査する方法について、今回はmemory_profilerについて調べたのでまとめます。 本家のサイト memory-profiler · PyPI インストール $ pip install memory_profiler 使い方 使い方としては、めちゃめちゃ簡単で、確認した…

【Python】時系列予測ライブラリProphetで学習したモデルを保存・呼び出しする

こんにちは。随分前ですが、Facebookの時系列予測ライブラリのProphetについて記事を書きました。www.st-hakky-blog.comちょっぴり本格的に使う機運が高まってきて、「そういえばどうやってモデルを保存・呼び出しするんだろう」って思って、調べてみました…

【Plotly】jupyter notebook上でofflineで使う方法

こんにちは。いつも忘れるので、備忘録。 Jupyter Notebook上で使うときの方法 import plotly.graph_objs as go from plotly.offline import init_notebook_mode, plot, iplot init_notebook_mode(connected=True) 参考 Plotly Offline for IPython Notebooks…

【Python】Pandasでapply処理時に複数の値を返せるようにする

こんにちは。いつも忘れてしまうので、書きます。 やりたいこと Pandasで、applyの処理を書くことはよくあると思うのですが、このときに複数の値を返して、一度で複数カラムを追加したいのです。通常、apply関数を使用して素直にやろうとすると、以下のよう…

【folium】Pythonで位置情報の可視化

こんにちは。今回は、Pythonのライブラリである「folium」を使って、位置情報を可視化してみたので、その方法についてまとめてみます。 概要 Pythonで簡単に使える、地理情報の可視化ライブラリです。以下が関連サイト Github:GitHub - python-visualizatio…

【Python】AnacondaでPythonのVersionを切り替える方法とよく使うコマンド一覧

こんにちは。もう滅多にPythonの2系を使うことはなくなってしまっていたのですが、最近直面しまして、そういえばどうやってやるんだっけって思い出せなくなったので、メモします。 参考資料 ぶっちゃけ以下の資料を見たほうがいいです。 Managing Python — C…

【初めてのABEJA Platform】ABEJA Platformを使ってコード0行でresnet50のモデルをデプロイしてみる

こんにちは。この記事は、ABEJA Platform Adevent Calendarの2日目の記事です。今回は、現在会社で利用しているサービスであるABEJA Platformを使って、学習したモデルをデプロイしてみましたので、そのやり方をまとめます*1。qiita.com ABEJA Platformとは …

【matplotlib】x軸のラベルを回転させる

こんにちは。毎回調べてしまうものシリーズ。今日は、x軸のラベルを回転させる方法についてのメモ。 x軸のラベルを回転させる plt.xticks(rotation=70) 他にもやり方はあるけど、簡単にやるにはこれで十分。以上。 参考 python - Date ticks and rotation in…

【matplotlib】Jupyter Notebook上での画像のサイズを大きくする

こんにちは。いつも忘れるので、メモ。 Jupyter Notebook上で画像のサイズを大きくする 以下のコードで大きくできます。 from pylab import rcParams rcParams['figure.figsize'] = 20,10 以上。

決定木の可視化ライブラリ「dtreeviz」が凄かったのでまとめる

こんにちは。決定木の可視化といえば、正直scikit-learnとgraphvizを使うやつしかやったことがなかったのですが、先日以下の記事をみて衝撃を受けました。そこで今回は、以下の解説記事中で紹介されていたライブラリ「dtreeviz」についてまとめます。explain…

【Python】Jupyter notebookのWarningを消す

こんにちは。Jupyter NotebookでWarningを見たくない時のコードを毎回調べちゃうのでメモ。 Warningを消す import warnings warnings.filterwarnings('ignore') 以上

【Python】線分交差判定のプログラムを書いた

こんにちは。仕事で「2つの線分が交差しているかどうか」を判定するプログラムを書いたのでその備忘録として書いておきます。 2つの線分が交差しているとは 2つの線分が交差しているとは、こちらのサイトによれば、 点A,Bを通る直線が線分CDと交差し、かつ …

pipでキャッシュを無効にしてインストール

こんにちは。pipでキャッシュを無効にしてインストールするコマンドを久しぶりに仕事で見かけて、調べちゃったので、簡単にメモします。 キャッシュの無効化 キャッシュを無効にするには --no-cache-dir というオプションをつけるとできます。 $ pip install…

【Python】Jupyter Notebookをssh経由で利用する

こんにちは。いつも調べちゃうことをメモ化することに決めた私です。今日は、Jupyter Notebookをssh経由で利用する際の設定メモです。以下のコンテンツは、Anacondaがインストール済みという前提の元作業を行なっています。 リモートの設定 notebook_config.…

【Python】Pandasで行・列で表示する文字数を指定する

こんにちは。Jupyter Notebookなどで行や列を表示した際に、結構な行数を表示させようとした時などは、「・・・」のような形で省略されて表示されてしまうと思います。これは便利な一方で、省略せずに表示してほしい場合などもあると思います。その際に、行…

【Python】loggingを複数ファイル・モジュール間で使う方法

こんにちは。今日は、loggingを複数ファイル・モジュール間で使う方法について調べたので、そのメモを書きます。ログの設定については下記に書いたので、今回は複数ファイル・モジュール間で使う方法についてだけ描きます。st-hakky.hatenablog.com やり方 …

pandas-datareader でデータをダウンロードしてみた

こんにちは。今日は、pandas-datareader を使ってデータを株価とか人口データをダウンロードしてみたので、そのことについてまとめます。 pandas-datareader とは Web上の様々なソースにアクセスできるライブラリ。か元々はPandasのライブラリの一つであった…

【Python】 Pandas-Profilingを使ってみた

こんにちは。最近Kaggleとかやっていて、EDAやるのめんどくさいとか思ったりしちゃったりした時に、ざくっと簡単に分析することができないかなぁと思って調べていたら「Pandas-Profiling」というものがあったので、実際に使ってみました。 本家のサイトなど …