読者です 読者をやめる 読者になる 読者になる

goodbyegangsterのブログ

備忘録的な

pandasを触ってみる

株価や為替のデータをあーだこーだいろいろ分析したいぞ、ということでpandasを触ってみます。

公式サイトで「10 Minutes to pandas」とnew user向けのintroductionがあるのですが、出てくる用語がそもそもよく分からない。

10 Minutes to pandas — pandas 0.19.1 documentation

ということで、pandasで利用されている用語(というか概念)を備忘録としてまとめておきます。

Series

seriesは「a one-dimensional labeled array」って説明されてます。まあ、配列ですね。

>>> import numpy
>>> import pandas
>>>
>>> s = pandas.Series([1,3,5])
>>> s
0    1
1    3
2    5
dtype: int64

尚、配列のkey値は指定できます。key値のことはindexと呼ばれています。

>>> s = pandas.Series([1,3,5], index=["a","b","c"])
>>> s
a    1
b    3
c    5
dtype: int64

DateFrame

dataframeは「a 2-dimensional labeled data structure with columns of potentially different types」って説明されています。「a spreadsheet or SQL table, or a dict of Series objects」ってことらしいです。

実際に使ってみるのが理解が早いです。

>>> d = pandas.DataFrame([1,3,5], index=["a","b","c"], columns=["a"])
>>> d
   a
a  1
b  3
c  5

numpyを利用し、整数の乱数3✕3をデータとして与えてみます。

>>> d = pandas.DataFrame(numpy.random.randint(0,10,(3,3)), index=["a","b","c"], columns=["aa","bb","cc"])
>>> d
   aa  bb  cc
a   2   1   6
b   5   6   3
c   6   6   8

確かにSQLテーブルみたいですね。行の名前がindexで、列の名前がcolumnsにあたります。

「10 Minites to pandas」をさらっと読んでみるかぎり、以上の点だけ理解しておけば、さくさく使えそうなイメージがあります。分析したいデータをseriesかdataframeのいずれかの形式にしてあげて、そしたら多数用意されている関数を用いて処理してあげればいいっぽいです。

一応、「Intro to Data Structures」というページには、「panel」というデータ形式もあると記載されてますが、「10 Minites to pandas」内では出てきませんでした。

Intro to Data Structures — pandas 0.19.1 documentation

「Panel is a somewhat less-used, but still important container for 3-dimensional data.」と書いてあるので、3次元データを扱う際に利用されるのでしょう。

難しそうなので、今回はスキップで。。。