SlideShare a Scribd company logo
1 of 18
Download to read offline
集合知プログラミング
勉強会キックオフMtg


Pandas超入門

       @gepuro1
自己紹介
●   早川 敦士 (@gepuro)
●   電気通信大学システム工学科4年生
●   専攻:信頼性工学
●   好きな言語:Python,R,AWK
●   趣味:花火,テキストマイニング,アニメ
●   活動場所:電通大,MMA,iAnalysis,DBCLS



                                   2
Pandasとは?
pandas is an open source, BSD-licensed
library providing high-performance, easy-to-
use data structures and data analysis tools
for the Python programming language.
                      http://pandas.pydata.org/ より



pandasはハイパフォーマンスなライブラリ
で、Pythonでデータ構造やデータ解析ツー
ルをめっちゃ使いやすい。(超意訳)
                                                     3
Pandasの役割
●   データの加工からモデリングをスムーズに行
    える。
●   R言語のデータフレームに出来るような操作を
    Pythonで行える。
●   Pandas自体には多くの統計モデルが実装され
    ていないので、他のライブラリとの連携が必
    要。
●   pandasは、Rへのインターフェースがある。
    Rpy2との連携
●   などなど                      4
Pandasの情報
●   http://pandas.pydata.org/pandas-docs/stable/
    にある公式ドキュメントが整っていて見やす
    い。
●   この勉強会では、ここにある情報を主に紹介
    できたらと思う。




                                                   5
Pandasのインストール
ソースから
git clone
git://github.com/pydata/pandas.git
cd pandas
python setup.py install

ubntuユーザなら
apt-get install python-pandas

                                     6
Pandasの依存ライブラリ
Dependencies
NumPy: 1.6.1 or higher
python-dateutil 1.5


Optional dependencies
SciPy: miscellaneous statistical functions
PyTables: necessary for HDF5-based storage
matplotlib: for plotting
scikits.statsmodels:Needed for parts of pandas.stats
pytz:Needed for time zone support with date_range

                                                       7
データ構造
Dimensions   Name         Description

1            Series       1D labeled
                          homogeneously-typed
                          array


1            TimeSeries   Series with index
                          containing datetimes


2            DataFrame    General 2D labeled, size-
                          mutable tabular structure
                          with potentially
                          heterogeneously-typed
                          columns




3            Panel        General 3D labeled, also
                          size-mutable array          8
Seriesの利用
  Seriesに挿入できるデータ型
● a Python dict

● an ndarray

● a scalar value (like 5)



In [52]: pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"])
Out[52]:
a -0.904244
b 0.870734
c -0.217093
d 0.123815
e 0.356112

In [53]: s = pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"])

In [54]: s.index
Out[54]: Index([a, b, c, d, e], dtype=object)

                                                                              9
Seriesでの計算
In [66]: s + s
Out[66]:
a 0.388344
b 3.670871
c 1.306869
d -0.237199
e 3.168135
                     ベクトル計算も楽に出来る!
In [67]: s * 2
Out[67]:
a 0.388344
b 3.670871
                     Rでの操作と同じ感覚!
c 1.306869
d -0.237199
e 3.168135

In [68]: np.log(s)
Out[68]:
a -1.639012
b 0.607282
c -0.425513
d       NaN                          10
e 0.459996
DataFrameの利用
  DataFrameに挿入できるデータ型
● Dict of 1D ndarrays, lists, dicts, or Series

● 2-D numpy.ndarray

● Structured or record ndarray

● A Series

● Another DataFrame



    In [9]: d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
    'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}

    In [10]: df = pd.DataFrame(d)

    In [11]: df
    Out[11]:
      one two
    a 1 1
    b 2 2
    c 3 3                                                                  11
    d NaN 4
DataFrameでの計算
In [17]: df + df
Out[17]:
  one two
a 2 2
b 4 4
c 6 6
d NaN 8             Series同様に、
In [18]: df + 1     馴染みの操作が出来る。
Out[18]:
  one two
a 2 2
b 3 3
c 4 4
d NaN 5




                                   12
DataFrameでの列の追加
In [21]: df
Out[21]:
  one two
a 1 1
b 2 2
c 3 3
d NaN 4                                        辞書型(連想配列)を扱う
In [22]: df["three"] = df["one"] * df["two"]   ように、列を追加出来る。
In [23]: df
Out[23]:
  one two     three
a 1 1          1
b 2 2          4
c 3 3          9
d NaN 4         NaN



                                                          13
DataFrameへのアクセス
In [46]: df["one"]
Out[46]:
a 1
                      列でアクセス
b 2
c 3
d NaN
Name: one

In [47]: df.xs("a")
Out[47]:
one      1
                      行でアクセス
two      1
three 1
Name: a




                               14
In [91]: df.mean()
                                 DataFrame
Out[91]:
one      2.000000              での便利メソッド
two      2.500000
three 4.666667

In [92]: df.max()
Out[92]:
one      3
two      4
three 9

In [93]: df.var()
Out[93]:
one       1.000000
two      1.666667
Three 16.333333

In [100]: df.apply(lambda x:
x.max() - x.min())
Out[100]:
one     2
two     3
three 8
                                             15
   DataFrameに対して、統計量を求めることが出来る。
DataFrameに対してソート
In [121]: df.sort_index(by="one")
Out[121]:
  one two three
a 1 1         1
b 2 2         4
c 3 3         9
d NaN 4 NaN                               ソートも楽に出来る。
In [122]:                                 byに配列を使って複数指定する
df.sort_index(by="one",ascending=False)   ことも可能
Out[122]:
  one two three
d NaN 4 NaN
c 3 3        9
b 2 2        4
a 1 1        1



                                                        16
pandasとscikit-learn
                                                                     gepuro@ubuntu:~$ cat hoge.csv
                                                                     a,b
                                                                     1,1
                                                                     2,3
                                                                     4,6
                                                                     1,3
                                                                     2,2
                                                                     1,1




参考:http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#example-linear-model-plot-ols-py   17
ご清聴ありがとう
ございました!


           18

More Related Content

What's hot

for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力imuyaoti
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門Koichi Hamada
 
TensorFlow White Paperを読む
TensorFlow White Paperを読むTensorFlow White Paperを読む
TensorFlow White Paperを読むYuta Kashino
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Takashi J OZAKI
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Takeshi Arabiki
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with HaskelKen Ogura
 
200319 eash python_shareslide_functions
200319 eash python_shareslide_functions200319 eash python_shareslide_functions
200319 eash python_shareslide_functionsHiroki Katayama
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2Tomohiro Namba
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門Takeshi Arabiki
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理Shintaro Fukushima
 

What's hot (20)

for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力for関数を使った繰り返し処理によるヒストグラムの一括出力
for関数を使った繰り返し処理によるヒストグラムの一括出力
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
Tokyor36
Tokyor36Tokyor36
Tokyor36
 
TensorFlow White Paperを読む
TensorFlow White Paperを読むTensorFlow White Paperを読む
TensorFlow White Paperを読む
 
R高速化
R高速化R高速化
R高速化
 
R3.0.0 is relased
R3.0.0 is relasedR3.0.0 is relased
R3.0.0 is relased
 
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
R -> Python
R -> PythonR -> Python
R -> Python
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
 
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with Haskel
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
200319 eash python_shareslide_functions
200319 eash python_shareslide_functions200319 eash python_shareslide_functions
200319 eash python_shareslide_functions
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
 

Similar to Intoroduction of Pandas with Python

多次元配列の効率的利用法の検討
多次元配列の効率的利用法の検討多次元配列の効率的利用法の検討
多次元配列の効率的利用法の検討Yu Sato
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介Satoshi Hirata
 
Data frameあれこれ
Data frameあれこれData frameあれこれ
Data frameあれこれweda654
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門Yuya Matsumura
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 Nobuaki Oshiro
 
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29西岡 賢一郎
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介Daisuke Tanaka
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類Tetsuya Hasegawa
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)Yuya Matsumura
 
Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用Nobuaki Oshiro
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Haruka Ozaki
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツShinsukeYokota
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイドEtsuji Nakai
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 

Similar to Intoroduction of Pandas with Python (20)

多次元配列の効率的利用法の検討
多次元配列の効率的利用法の検討多次元配列の効率的利用法の検討
多次元配列の効率的利用法の検討
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
Data frameあれこれ
Data frameあれこれData frameあれこれ
Data frameあれこれ
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
 
PandasとSQLとの比較
PandasとSQLとの比較PandasとSQLとの比較
PandasとSQLとの比較
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 

More from Atsushi Hayakawa

Zepp play soccerで測ってみた
Zepp play soccerで測ってみたZepp play soccerで測ってみた
Zepp play soccerで測ってみたAtsushi Hayakawa
 
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?Atsushi Hayakawa
 
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018Atsushi Hayakawa
 
バンクーバー旅行記
バンクーバー旅行記バンクーバー旅行記
バンクーバー旅行記Atsushi Hayakawa
 
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAtsushi Hayakawa
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017Atsushi Hayakawa
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65Atsushi Hayakawa
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallAtsushi Hayakawa
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~Atsushi Hayakawa
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Atsushi Hayakawa
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情Atsushi Hayakawa
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するAtsushi Hayakawa
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化Atsushi Hayakawa
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくるAtsushi Hayakawa
 

More from Atsushi Hayakawa (20)

tidyverse.orgの翻訳
tidyverse.orgの翻訳tidyverse.orgの翻訳
tidyverse.orgの翻訳
 
Zepp play soccerで測ってみた
Zepp play soccerで測ってみたZepp play soccerで測ってみた
Zepp play soccerで測ってみた
 
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?
 
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018
 
バンクーバー旅行記
バンクーバー旅行記バンクーバー旅行記
バンクーバー旅行記
 
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
 
useR!2017 in Brussels
useR!2017 in BrusselsuseR!2017 in Brussels
useR!2017 in Brussels
 
Japan.R 2016の運営
Japan.R 2016の運営Japan.R 2016の運営
Japan.R 2016の運営
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
 
gepuro task views
gepuro task viewsgepuro task views
gepuro task views
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積する
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくる
 
らずぱいラジコン
らずぱいラジコンらずぱいラジコン
らずぱいラジコン
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (12)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

Intoroduction of Pandas with Python

  • 2. 自己紹介 ● 早川 敦士 (@gepuro) ● 電気通信大学システム工学科4年生 ● 専攻:信頼性工学 ● 好きな言語:Python,R,AWK ● 趣味:花火,テキストマイニング,アニメ ● 活動場所:電通大,MMA,iAnalysis,DBCLS 2
  • 3. Pandasとは? pandas is an open source, BSD-licensed library providing high-performance, easy-to- use data structures and data analysis tools for the Python programming language. http://pandas.pydata.org/ より pandasはハイパフォーマンスなライブラリ で、Pythonでデータ構造やデータ解析ツー ルをめっちゃ使いやすい。(超意訳) 3
  • 4. Pandasの役割 ● データの加工からモデリングをスムーズに行 える。 ● R言語のデータフレームに出来るような操作を Pythonで行える。 ● Pandas自体には多くの統計モデルが実装され ていないので、他のライブラリとの連携が必 要。 ● pandasは、Rへのインターフェースがある。 Rpy2との連携 ● などなど 4
  • 5. Pandasの情報 ● http://pandas.pydata.org/pandas-docs/stable/ にある公式ドキュメントが整っていて見やす い。 ● この勉強会では、ここにある情報を主に紹介 できたらと思う。 5
  • 6. Pandasのインストール ソースから git clone git://github.com/pydata/pandas.git cd pandas python setup.py install ubntuユーザなら apt-get install python-pandas 6
  • 7. Pandasの依存ライブラリ Dependencies NumPy: 1.6.1 or higher python-dateutil 1.5 Optional dependencies SciPy: miscellaneous statistical functions PyTables: necessary for HDF5-based storage matplotlib: for plotting scikits.statsmodels:Needed for parts of pandas.stats pytz:Needed for time zone support with date_range 7
  • 8. データ構造 Dimensions Name Description 1 Series 1D labeled homogeneously-typed array 1 TimeSeries Series with index containing datetimes 2 DataFrame General 2D labeled, size- mutable tabular structure with potentially heterogeneously-typed columns 3 Panel General 3D labeled, also size-mutable array 8
  • 9. Seriesの利用 Seriesに挿入できるデータ型 ● a Python dict ● an ndarray ● a scalar value (like 5) In [52]: pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"]) Out[52]: a -0.904244 b 0.870734 c -0.217093 d 0.123815 e 0.356112 In [53]: s = pd.Series(np.random.randn(5), index=["a", "b", "c", "d", "e"]) In [54]: s.index Out[54]: Index([a, b, c, d, e], dtype=object) 9
  • 10. Seriesでの計算 In [66]: s + s Out[66]: a 0.388344 b 3.670871 c 1.306869 d -0.237199 e 3.168135 ベクトル計算も楽に出来る! In [67]: s * 2 Out[67]: a 0.388344 b 3.670871 Rでの操作と同じ感覚! c 1.306869 d -0.237199 e 3.168135 In [68]: np.log(s) Out[68]: a -1.639012 b 0.607282 c -0.425513 d NaN 10 e 0.459996
  • 11. DataFrameの利用 DataFrameに挿入できるデータ型 ● Dict of 1D ndarrays, lists, dicts, or Series ● 2-D numpy.ndarray ● Structured or record ndarray ● A Series ● Another DataFrame In [9]: d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])} In [10]: df = pd.DataFrame(d) In [11]: df Out[11]: one two a 1 1 b 2 2 c 3 3 11 d NaN 4
  • 12. DataFrameでの計算 In [17]: df + df Out[17]: one two a 2 2 b 4 4 c 6 6 d NaN 8 Series同様に、 In [18]: df + 1 馴染みの操作が出来る。 Out[18]: one two a 2 2 b 3 3 c 4 4 d NaN 5 12
  • 13. DataFrameでの列の追加 In [21]: df Out[21]: one two a 1 1 b 2 2 c 3 3 d NaN 4 辞書型(連想配列)を扱う In [22]: df["three"] = df["one"] * df["two"] ように、列を追加出来る。 In [23]: df Out[23]: one two three a 1 1 1 b 2 2 4 c 3 3 9 d NaN 4 NaN 13
  • 14. DataFrameへのアクセス In [46]: df["one"] Out[46]: a 1 列でアクセス b 2 c 3 d NaN Name: one In [47]: df.xs("a") Out[47]: one 1 行でアクセス two 1 three 1 Name: a 14
  • 15. In [91]: df.mean() DataFrame Out[91]: one 2.000000 での便利メソッド two 2.500000 three 4.666667 In [92]: df.max() Out[92]: one 3 two 4 three 9 In [93]: df.var() Out[93]: one 1.000000 two 1.666667 Three 16.333333 In [100]: df.apply(lambda x: x.max() - x.min()) Out[100]: one 2 two 3 three 8 15 DataFrameに対して、統計量を求めることが出来る。
  • 16. DataFrameに対してソート In [121]: df.sort_index(by="one") Out[121]: one two three a 1 1 1 b 2 2 4 c 3 3 9 d NaN 4 NaN ソートも楽に出来る。 In [122]: byに配列を使って複数指定する df.sort_index(by="one",ascending=False) ことも可能 Out[122]: one two three d NaN 4 NaN c 3 3 9 b 2 2 4 a 1 1 1 16
  • 17. pandasとscikit-learn gepuro@ubuntu:~$ cat hoge.csv a,b 1,1 2,3 4,6 1,3 2,2 1,1 参考:http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#example-linear-model-plot-ols-py 17