pandas0.40の使い方メモ
pythonでデータをR言語の時のように扱いたい。行列演算がしたいなどのような望みを叶えてくれるpandasというpythonのライブラリーについて、初歩的な使い方についてのメモ
- インストールに必要な物
- バージョン1.40以上のNumpy
- バージョン1.5のpython-dateutil
ubuntu10.04の方は、そのままの状態でapt-get等によるインストールを行うと、バージョンが1.30のnumpyがインストールされるので、ソースからなど、他の手段より別途にインストールする必要があります。
- オプションで必要になるもの
- Scipy
- PyTables
- matplotlib
- scikits.statsmodels
- pytz
以降に例で示すものは、事前に
import pandas as pd import numpy as np
をしておくとする。
- 一次元データの取り扱い
>>> s = pd.Series([1,2,3,4,5], index=['a', 'b', 'c', 'd', 'e']) >>> s a 1 b 2 c 3 d 4 e 5 >>> data = {'a' : 1, 'b' : 2 , 'c': nan} >>> pd.Series(data, index=['b', 'c', 'a']) b 2.0 c NaN a 1.0
条件を加えてデータを取りだしたり、データ全体に対して計算を行うことが出来る。
>>> s[:2] a 1 b 2 >>> s['a'] 1 >>> s[ s > s.mean()] d 4 e 5 >>> np.log(s) a 0.0 b 0.69314718056 c 1.09861228867 d 1.38629436112 e 1.60943791243 >>> s * s a 1 b 4 c 9 d 16 e 25
- 二次元データの取り扱い
>>> d = {'one' : Series([1., 2., 3.], index=['a', 'b', 'c']), ... 'two' : Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])} >>> df = pd.DataFrame(d, index=['d', 'b', 'a'], columns=['one', 'two', 'three']) >>> df one two three d NaN 4 NaN b 2 2 NaN a 1 1 NaN
次のようにして、データの加工をすることができる。
>>> df['two'][:2] d 4.0 b 2.0 >>> df['flag'] = df['one'] > 1 >>> df flag one two three d False NaN 4 NaN b True 2 2 NaN a False 1 1 NaN >>> del df['flag'] >>> df one two three d NaN 4 NaN b 2 2 NaN a 1 1 NaN >>> df.pop('three') d NaN b NaN a NaN >>> df one two d NaN 4 b 2 2 a 1 1
- データの入力と出力
>>> df = pd.io.parsers.read_csv('input.csv') >>> df.toCSV("output.csv",nanRep='',header=True,index=True) #データの出力