LoginSignup
50
48

More than 5 years have passed since last update.

Pandas + Jupyter notebookで分析を便利に

Last updated at Posted at 2016-07-19

環境

Python 3.5.1 :: Anaconda 2.5.0

pandas.DataFrame使ってないの?

pythonでcsv読み込んだり、json読み込んだり、DBからSQL文書いてexecute(hogehoge)とかやるのは、大変じゃないですか?DBなんかは特に,エラー処理でrollbackとかcommitとか分けたり非常にめんどくさい。

その悩み、pandas使えば解決しますよー

よくあるcsvの読み込み

before
import csv

with open("data.csv",'r') as f:
    data = csv.reader(f)

for row in data:
    print(row)
after
import pandas as pd

data = pd.read_csv("data.csv")
print(data)

sqlでselectしたデータをpythonに落とす(postgres)

before
import psycopg2

conn = psycopg2.connect("dbname=test host=localhost user=postgres")
cur = conn.cursor()
cur.execute("SELECT * FROM test_table LIMIT 100;")
data = cur.fetchall()

for row in data:
    print(row)
after
import pandas as pd
import psycopg2

conn = psycopg2.connect("dbname=test host=localhost user=postgres")
data = pd.read_sql("SELECT * FROM test_table LIMIT 100;",conn)
print(data)

pandasのいいところとして、
テーブル形式のデータ構造をそのまま保持できる
ところにある。つまり,DBのテーブル構造とかcsvのカラムとかそのまま引っ張ってこれるということ。

例(csvファイルのサンプル)

Jupyter notebookで扱うことで、さらに見やすく便利に

スクリーンショット 2016-07-19 13.18.35.png

各カラムの型も簡単にチェック

スクリーンショット 2016-07-19 13.22.31.png
(objectという型は、カラム内に複数の型データが存在しているので、文字列となっている。例えば、数値と変な文字が入ったカラムを、数値のみの型に変換したいときは、df["column_name"].convert_objects(convert_numeric=True)とすれば、変換できなかったものがNaNとして格納される)

pandasのHow toはいろいろな記事があるし、Jupyter notebookも非常に簡単に使えるツールです。組み合わせれば、すごく早く、簡単にデータの分析ができるので是非お試しを

追記
pandasでデータ集計、分析をする際に便利なメソッドを備忘録としてまとめていきます(随時更新予定)
Pandasでデータ集計をする際に最低限覚えておきたいメソッド

50
48
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
50
48