よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

Python

Apache AirflowのDAGファイルの最小設定

Apache Airflowで自作ファイルを作成しようとしたが、設定できる項目多く迷うことが多かった。そこでチュートリアルで用意されているものから最低限必要なものを抜き出してみた。 それが以下になる。 from datetime import timedelta from airflow import DA…

Apache Airflowのチュートリアルを実行してみた

Airbnb 社が開発し、今は Apache ソフトウェア財団のトッププロジェクトとなっている Apache Airflow。 今回は業務の中でワークフロー製品を扱っていることもあり、OSS の Airflow の感触を確かめるべく触ってみた。 準備 Airflow の公式ページでインストー…

【Pandas】GroupBy.first関数の動きを確認する

Pandas のGroupBy.first を使うと、グループの中で一番最初の値を取得できる。 pandas.pydata.org 以前SQLの分析関数であるFIRST_VALUEとの動きを確認した。Pandasでどのように実現していくのか見ていくものになる。 yoshitaku-jp.hatenablog.com 実行環境 …

【Pandas】shift関数の動きを確認する

Pandas のshift を使うと、現在の行の値と前後の行の値を比較できる。 pandas.pydata.org 以前SQLの分析関数であるLAGとLEADの動きを確認したが、Pandasではどのように実現していくのか見ていくものになる。LAG関数とLEAD関数も比較して見てもらえると! yos…

FC Pythonでサッカーのデータ分析を学ぶ -パスマップ編-

「FC Python」 でサッカーのデータ分析を学ぶことができる。 コンテンツは英語しかないが簡単な内容であり、1 つ 1 つのコンテンツも短いので翻訳サイトを使いながらでも進めることはできる。 これが無料で展開されているのはありがたい! 今回はパスの表現…

mypyをVS codeで使うための手順

Python に限らず、プログラミングで開発する際には様々な便利ツールを導入する。 今回は Python の 型の状態を静的にチェックする mypy を VS Code に導入する方法をメモしておく。 mypy を有効にする VS Code で mypy を有効にする。 mypy をインストールす…

【LeetCode】14.longest-common-prefix をPythonで解く

問題はこちら leetcode.com Example 1: Input: strs = ["flower","flow","flight"] Output: "fl" 問題の解説に載っている例を持ってきた。 リストの中に格納されている複数の文字列を、前から 1 文字ずつ取り出していく。 取り出した文字が同じかどうかを判…

【Django】アプリケーションをディレクトリにまとめた時の設定変更箇所

Django でアプリを複数作っていくとルートディレクトリが見づらくなっていく。 . ├── accounts ├── manage.py ├── posts そこで、app ディレクトリを作成し、その中にアプリを入れる形をとってみた。 . ├── app ├── accounts ├── posts ├── manage.py それに…

blackをVS codeで使うための手順

Python に限らず、プログラミングで開発する際には様々な便利ツールを導入する。 今回は Python の フォーマッタ である black を VS Code に導入する方法をメモしておく。 black を有効にする VS Code では autopep8 がデフォルトで有効になっている。 blac…

flake8をVS codeで使うための手順

Python に限らず、プログラミングで開発する際には様々な便利ツールを導入する。 今回は Python の linter である flake8 を VS Code に導入する方法をメモしておく。 Pylint を無効にする VS Code では Pylint がデフォルトで有効になっている。 これをまず…

手を動かすはじめの一歩に最適 / Python実践データ分析100本ノックを読了した

去年からデータ分析に関係する勉強を始めている。理論的なことと実践での動きについて学ぶことができているが、なかなか手を動かすことができていなかった。知識ばかりが先行し頭でっかちになってしまっていた自分は手を動かして学ぶ事ができるものを探して…

Google Colaboratory で Google Drive に読み書きする

Google Colaboratoryで保存してあるファイルからデータを読み取ったり、計算した結果をファイルとして書き込んだりしたいタイミングがあった。今回はGoogle繋がりと無料で使える保存場所としてGoogle Driveを選択し、Google Colaboratoryでマウントしてから…

Google Colaboratoryで Sparkを使うための準備

Python実践データ分析100本ノック | 下山 輝昌, 松田 雄馬, 三木 孝行 |本 | 通販 | Amazonを実践していて、環境構築なしにJupyterNotebookと同じ環境が使えるのでGoogle Colaboratoryを使う機会が増えています。 100本ノックでSparkを使うことはないと思っ…

【Python】str()とrepr()の違い

ずっと疑問に思っていたPythonにおけるstr()とrepr()の違いについてまとめた。 共通していること タイトルに「違い」と書き始めたが、まずはこの2つについて共通していることを簡単に書いておく。 この2つの関数について同じことはオブジェクトの中身を出力…

【Pandas】df.head と df.head()の違い

サンプルコードを写経していたら、df.head()と打たなければいけないところを、df.headで実行してしまった。それでも実行はできて中身の出力はできたのだけれど、出力内容は違うものが出てきたのでこの2つについて簡単に調べた。表示されているデータは機械…

【Python】デフォルト引数にリストを使うときの注意点

自分が知らなかったのでメモ 関数のデフォルト引数にリストを設定した時、デフォルト引数のリストの内容は再度実行したタイミングでも前の内容を保持します。 def sample(a, b=[]): b.append(a) return b print(sample('test')) ['test'] print(sample('test…

コードでシステムアーキテクチャを描く「Diagrams」

「Diagrams」 を使うと、システムのアーキテクチャ図をPythonのコードで作成できる。 各クラウドサービスはもちろんのこと、OSSで使われているソフトウェアのアイコンまで用意されており、もう自分で画像探しの旅に出る必要がない。 プレゼンテーションツー…

Django REST FrameworkとJWTで認証を実装する

手順 インストール まずはDjango REST FrameworkとJWTを扱うためのライブラリをインストールします。 pip install djangorestframework pip install djangorestframework-jwt Django REST Frameworkの設定 プロジェクトとアプリケーションの作成 次にDjango …

Netlify で Python のバージョンを変更する方法

はじめに 2月から趣味のブログをnoteからPelicaとNetlifyの組み合わせで運用していこうと思っていたが環境構築の際に Error setting python version from runtime.txt が発生したためメモを残す。 NetlifyでのPythonデフォルトバージョンは2.7 この記事を書…

.ipynbファイルをコマンドから実行する

Jupyter Notebookで作成したプログラムをインタラクティブに実行できるのはとても便利だ。しかし、ルーティンのように実行するプログラムを毎回ブラウザを起動させて実行するのが煩わしいタイミングもある。そこでJupyter Notebookで作成した.ipynbファイル…

Jupyter Notebook で IOPub data rate exceeded エラー

エラー内容 IOPub data rate exceeded. The notebook server will temporarily stop sending output to the client in order to avoid crashing it. Google翻訳による日本語 IOPubデータレートを超えました。 ノートブックサーバーは一時的に出力の送信を停…

Pelican で画像ファイルを扱う方法

実装方法 まずはcontent/imagesを作成し配下に表示したい画像を配置する。imagesディレクトリと名付けるとPelicanではデフォルトで「静的ファイルが置かれているフォルダ」 と見なされる。この状態でpelican htmlコマンドを実行すると、outputディレクトリ配…

Python製の静的サイトジェネレーター Pelican を導入してみた

Pelicanとは? PelicanはPython製の静的サイトジェネレーターです。他の言語では、GoのHugoやReact.jsのGatsby.jsが有名です。自分自身は、Vue.js製のGridsomeを使う記事を書きました。 yoshitaku-jp.hatenablog.com yoshitaku-jp.hatenablog.com 自己学習と…

Flaskをさわってみた

Maker Faireへの出展物にWeb API化したいものがあり、軽量なFlaskを採用した。 以前Djangoを使用して個人的なプロダクトを作ったことがあったので、比較対象としてFlaskの名前は聞いたことがあったが触るのは初めてだった。 Djangoに比べると軽量に使えるも…

Jupyter Notebookを外部からアクセスして使う方法

Jupyter Notebookを起動しているサーバーに外部からアクセスして利用する方法をTipsとしてまとめておく。 個人で小さく利用している場合はローカルマシンでJupyter Notebookを使うことで足りるが、企業単位であったり重い処理を実行する場合はクラウドにGPU…

Djangoでrequirements.txtをうまく使い分ける方法

以前、Djangoのrequirements.txtを環境ごとに使い分けようとした結果、Herokuにてエラーが出てしまいました。これの良い解決方法です。 yoshitaku-jp.hatenablog.com もぐもぐDjangoにて質問したところ、ベストな回答をいただけたのでメモ代わりに書いておき…

DjangoをHerokuにプッシュすると出るApp not compatible with buildpack

エラー内容 DjangoのwebアプリケーションをCircleCI経由でHerokuにpushしていたら、そこで出たエラーがでた。 #!/bin/bash -eo pipefail git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master Counting objects: 48, done. …

第2回 モグモグDjango に参加してきた!

1週間ほど経ってしまいましたが… 第2回 モグモグDjangoに参加してきました! mogumogu-django.connpass.com もぐもぐしながらDjangoについてもくもくと作業をする会です! 1人で静かに開発に打ち込みたい,という方には,ガヤガヤしていて集中できないかもし…

コードの修正がめんどくさいなら、autopep8で自動修正

前回PythonのコードがPEP8に準拠しているか確認するツールをブログに書きました! yoshitaku-jp.hatenablog.com 準拠してないところがわかったのはいいんですけど、修正する箇所が沢山あったら直すのめんどくさいなぁなんて思います。気をつけるのはもちろん…

コードをきれいにするため、pycodestyleを使ってみた

プログラムコードはきれいにしておきたいですよね。そのために様々な言語で規約もあるかと思います。 Pythonを独学で書いている自分としてはサンプルコードを見て真似して感覚的に覚えていったりもしました。正しいものがあるなら、それを見て正しく書いてい…