Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
47
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Pandas + Jupyter notebookで分析を便利に

環境

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でデータ集計をする際に最低限覚えておきたいメソッド

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
47
Help us understand the problem. What are the problem?