LoginSignup
1
5

More than 1 year has passed since last update.

データ分析に3年従事したうえで目から鱗だったpythonの技法

Last updated at Posted at 2021-05-17

バックグラウンド

現在、大学院でシミュレーションをメインに研究しています。

大学時代から、pythonでデータ分析などを行っており、やりたいことはできてきたつもりでしたが、この度Python 3 エンジニア認定データ分析試験を受験するために、教本を購入しました。

大体は知っている内容でしたが、今まで知らなかったこともあったので、備忘録としてまとめました。もっとなんかいい書き方とかあるやろ..と思ってる方向けの内容かなと思います。

包括的・体系的に知りたい方は、下記の本をチェックしてみてください。

「Pythonによるあたらしいデータ分析の教科書」(翔泳社)
著者:寺田 学、辻 真吾、鈴木 たかのり、福島 真太朗(敬称略)

目から鱗だったpythonの技法

loggingモジュール

バッチ処理などでprintを多用すること、あるあるですよね。
代替えの手段としてログを使用します。ポイントはログレベルを変えれることかな?
ログレベルは下記の5段階、下に行くほど重要度が高い。

  • debug
  • info
  • warning
  • error
  • critical

以下、例文
この例ではinfo以上が出力される。

import  logging 

logging.basicConfig(
    filename = 'test.log' #ログファイル名の指定
    level = logging.INIFO, format = '%(asctime)s:%(levelname)s:%(message)s' #ログレベルの指定
)

コーディング規約

pythonには標準となるコーディング規約があるみたいです。

PEP 8 - Style for python Code

例えば、複数モジュールをimportする際には、別々に書くとのこと。

import sys, os #PEP8 違反
#PEP8に準拠した書き方↓
import sys
import os

ここまでは、なんとなく知ってる..って感じでしたが、これをチェックしてくれるpycodestyleなるものがあるんですね!知らなかった。。

pip install pycodestyle
pycodestyle main.py

コーディング規約のプログラムを修正できます。

定義したけど、この変数使ったっけ..?

表題の通りです。
これをチェックするものにflake8なるものがあります。

pip install flake8
flake8 sample.py

あぁでもない。こうでもない。としているうちに、使っていない変数が増えてしまう時に有効です。

pandas describe

pandasのDataFrameにおける統計量はまるっとチェックできるものがあるみたいです。
それが、describe()メソッド。(メソッドの使い方あっているかな。。)
下記に例を示します。

df.describe() # df : DataFrame

これで、平均や最大・最小値を勝手に計算してくれます。

Jupyter Notebook マジックコマンド

%%や%ではじまるマジックコマンドがありみたいです。使えそうなのは、%%timeit`コマンドで、セル全体の計算時間を出力してくれます。
他にも、色々あるみたいです。参考までに下記を列挙します。

スクレイピングフレームワーク:Scrapy

pythonでのスクレイピングは、requestや、BeautifulSoup4,seleniumなどがよく使われますが、大量のページをスクレイピングしたい場合など、Scrapyがいいみたいです。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5