環境
Python 3.5.1 :: Anaconda 2.5.0
pandas.DataFrame使ってないの?
pythonでcsv読み込んだり、json読み込んだり、DBからSQL文書いてexecute(hogehoge)とかやるのは、大変じゃないですか?DBなんかは特に,エラー処理でrollbackとかcommitとか分けたり非常にめんどくさい。
その悩み、pandas使えば解決しますよー
よくあるcsvの読み込み
import csv
with open("data.csv",'r') as f:
data = csv.reader(f)
for row in data:
print(row)
import pandas as pd
data = pd.read_csv("data.csv")
print(data)
sqlでselectしたデータをpythonに落とす(postgres)
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)
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で扱うことで、さらに見やすく便利に
各カラムの型も簡単にチェック
(objectという型は、カラム内に複数の型データが存在しているので、文字列となっている。例えば、数値と変な文字が入ったカラムを、数値のみの型に変換したいときは、df["column_name"].convert_objects(convert_numeric=True)
とすれば、変換できなかったものがNaNとして格納される)
pandasのHow toはいろいろな記事があるし、Jupyter notebookも非常に簡単に使えるツールです。組み合わせれば、すごく早く、簡単にデータの分析ができるので是非お試しを
追記
pandasでデータ集計、分析をする際に便利なメソッドを備忘録としてまとめていきます(随時更新予定)
Pandasでデータ集計をする際に最低限覚えておきたいメソッド