まずは基本編からこれから始めるかたの参考になれば幸いです。
ファイル名
Pythonファイルの拡張子は「.py」となる。
対話型で直接Pythonのプロンプト画面でコードを書いても良いが(←どこでバグっているか検証に便利)、一度作ったソースコードは一括で実行したいので、この.pyファイルをコマンドライン(Windowsの方はコマンドプロンプト/マックの方はターミナル)で実行すれば良い。
その際先頭にPythonと打ってからファイルを実行する。
1 |
python C:\python\test.py |
ツール
私は重たいのが嫌で使っていないが、Pythonにも統合パッケージされた便利なツールがある。
・複数のPythonバージョンを管理したい
anacondaが有名なのでこれ一択ですが、フルパッケージド番は重たいので軽量版のminicondaがお勧め。
過去バージョンはそれぞれ以下のページでダウンロードできる。
なお、anacondaにはJupyter NotebookやPythonライブラリがごっそり自動的にダウンロードされるが、Minicondaには最小限のものしかダウンロードされないので、Minicondaを使っている場合は以下のようにJupyter Notebookもダウンロードする必要がある。
1 |
python3 -m pip install jupyter |
・ダイレクトに綺麗に描画したい
anaconda内に入っているJupyter Notebookを使います。使い方は調べれば出てくるので参考にしてください。postgresqlの最新版のようなブラウザ上のGUIから(動いているのはlocalhost)Pythonを操作できるので慣れない方にはこちらがお勧めとされている。
ExcelやTableauと連携して描画するし、余計なパッケージが最初から色々入っているのは嫌だ!という方は上記は使わなくても良いかと思います。
headerのおまじない
.pyファイル先頭に記述するおまじない、1行目はshebang(シバンまたはシェバンと読む)・・・でコードの意味はPuthonが共存している環境、例えばMacだとシステムで使っているversion2.x系が混在してしまうので明示的に記述してあげればよい。2行目は見ての通りだが、文字コードの指定でこれも明示的に書いてあげると良い。尚Python3系ではデフォルトでUTF-8になっているとのことなので書かなくても大丈夫っぽい。
1 2 |
#!/usr/bin/env python3 # -*- coding: utf-8 -*- |
pip コマンド
インストールされているライブラリの確認
1 |
pip list |
新規にライブラリをインストール
1 |
pip install PythonLibrary |
アンインストール
1 |
pip uninstall PythonLibrary |
バージョンを指定してインストール
1 |
pip install PythonLibrary==1.0.0 |
pip自体のアップグレード
1 |
pip install --upgrade pip |
CSVの読み込み
とにかくむちゃくちゃ使う。ライブラリでpandasを使っているバージョンとレガシーなものを記載しておきます。
・pandasでの操作
記述方法は 変数名 = pd.read_csv(‘example.csv’) となる。
1 |
test = pd.read_csv('example.csv') |
※タブ区切りのファイルの場合は、read_csvではなくread_table()とすればよい。
※sep=’\t’ のように改行コードをsepに直接書くこともできる。
読み込みファイルの文字コードがshift-jisで保存されていると、pandasに怒られるのできちんと指定してあげる必要がある。下記のように第二引数以降にオプションを指定してあげれば良い。大文字小文字の区別はしていない模様
1 |
test = pd.read_csv('example.csv' ,encoding='shift-jis') |
オプションには様々な指定方法が存在するが、例えばヘッダーが管理用に2-3行用意されていて、SkipHeader(n)したい場合業務では多々あると思います。pandasではSkipHeader(n)がないので、読み込みヘッダー行数を指定する。
1 |
test = pd.read_csv('example.csv' ,encoding='shift-jis' ,header=2) |
逆にヘッダーがない・・・(書いとけや!)というデータは header=None とつけると連番だけ振ってくれる。
1 |
test = pd.read_csv("example.csv" ,encoding='shift-jis' ,header=None) |
引数にnamesを使えば任意のカラム名前を付けることも可能だが、数が多いと面倒なので、ビッグデータ向きのCSVエディタや、サーバーサイド(SQL)でやってあげた方が良さそうな気もます。
1 |
test = pd.read_csv('example.csv' , encoding='shift-jis', names=('ColumnName', 'ColumnName', 'ColumnName')) |
・レガシー版
pandasを使っていない(使わない事はあまりないけど)処理速度の関係からレガシーな構文(組み込み関数を使って)を使って書くことも多いかと思います。
また教科書的にはopen()を使ってファイルを開くが、close()とSETで使わないといけない(閉じ忘れが多いので)、下記のようにwith openを使って自動的に閉じてもらう構文を使用するのが良いです。
1 |
with open('example.csv', 'r' , encoding='shift-jis') as f |
printしてみる↓↓
1 2 3 |
with open('survey_sample.csv', 'r' , encoding='shift-jis') as file: readcsv = file.read() print(readcsv) |
第二引数の r は読み書きmodeとなっており、以下の様にいくつかのパターンが存在する。
r = 読み出し専用
r+ = 読み書き専用
w = 書き込み専用(同名の既存ファイルがあれば消去)
a = 書き込み追記(ファイルの終端に追加)
b = バイナリモード(文字列のファイルではない場合はコチラを使用)
複数使用したい場合は ‘rb’ ‘r+b’ と言った具合にすぐ後につなげて書けばよい(区切り文字は不要)
CSVへの書き込み
オプションの設定は前記した読み込み時の引数を参考にしてください。
・pandasでの操作
to_csv()メソッドで書き込む。
1 2 |
file = pd.read_csv('example.csv' ,encoding='shift-jis') file.to_csv('example_putput_pandas.csv', encoding='utf-8', sep='\t') |
・レガシー版
他の言語と同じようにPythonもwriteで書き込める。文字列以外はエラーになるので文字列型変換strでネストしてあげれば良い。
1 2 3 4 5 6 7 |
#ファイルをオープン with open('example.csv', 'r' , encoding='shift-jis') as file: readtext = file.read() #オープンしたファイルを書き込みする with open('example_output.csv', 'w' , encoding='utf-8') as output: output.write(str(readtext)) |
検証などでとりあえず出力することは多いでね、もちろん使えます。
print(変数名 or file名 or 文字列など)
よく使うパッケージ ※更新中
anacondaとかは重くて使えないので、自分でインストールするのがおすすめ。
数えたら50個以上あったので必要最低限なものを載せておきます。業務によって大分ばらつきがあるかも。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
scikit-learn #機械学習用ライブラリ beautifulsoup4 #スクレイピング用ライブラリ urllib3 #URLを開くためのライブラリbeautifulsoup4と合わせてどうぞ fake-useragent #ユーザーエージェントを偽装するライブラリ(利用は規約厳守して) matplotlib #グラフ描画用ライブラリ japanize-matplotlib #グラフ描画用ライブラリ(日本語化が面倒な方はコチラ) seaborn #matplotlibのもうちょっとかっこいいやつ numpy #数値計算用ライブラリ pandas #データ分析用ライブラリ scipy #統計などの科学計算用のライブラリ mecab-python-windows #形態素解析用 requests #HTTPリクエスト用ライブラリ selenium #ブラウザ操作用 hashlib #MD5・SHA系のハッシュ化に tabulate #CLI上でも表をキレイに見せてくれる |
またライブラリではないですが結果の描画には Gephi という外部ツールを使うと3Dでかっこいいグラフを作成することが可能です。
サンプルデータセット
https://www.kaggle.com/
や
https://signate.jp/profile
で探せば出てきます。タイタニックとか有名ですね。
参考外部サイトリンク
・Pythonドキュメント英語版
└Pythonエンコードについて
・Pythonドキュメント日本語版
└CSVの読み書き
└読み書き込みmode
└エンコード一覧
└組み込み関数