ゆる~くだらだら

日常の思ったことをてきと~に書くブログ

【超初心者向け】PythonでPandasのインストールと基本的な使い方

f:id:hiropones:20190822201159j:plain



はい、ど〜も〜。


今回はpandasの使い方を書いていきます。簡単にpandasが何か?を説明すると、機械学習でデータの前処理を効率よく行うためのものです。


なんで、機械学習を進める上で必須のスキルとなっております。


・Pandasのインストール

anacondaにはpandasがついてるんで、こちらをインストール。
Anaconda Python/R Distribution - Free Download

・pandasの使い方

基本的にはnumpyと同じです。

>>>import numpy as np
>>>import pandas as pd
>>>hatena=np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>>hatena
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10]])
>>>burogu=pd.DataFrame(hatena)
   0  1  2  3   4
0  1  2  3  4   5
1  6  7  8  9  10

pd.DataFrame( )で行と列で表示されます。

?.columns=[ ]でカラム(横)に名前をつけることができます。

>>>burogu.columns = ['x', 'b', 'c', 'd', 'e']
>>>burogu
   x  b  c  d   e
0  1  2  3  4   5
1  6  7  8  9  10

?.index[ ]でインデックス(縦)の名前をつけられます。

>>>burogu.index = ['atena', 'burogu']
>>>burogu
           x  b  c  d   e
atena  1  2  3  4   5
burogu  6  7  8  9  10

例えば横列のxをaに変更したいときは以下のように書きます。

>>>burogu = burogu.rename(columns={'x' : 'a'})
>>>burogu
          a  b  c  d   e
atena  1  2  3  4   5
burogu  6  7  8  9  10

次は縦列のatenaをhatenaに変更してみます。

>>>burogu = burogu.rename(index={'atena' : 'hatena'})
>>>burogu
               a  b  c  d   e
hatena  1  2  3  4   5
burogu   6  7  8  9  10

?.info( )でカラムの情報を取得できます。

>>>burogu.info()
<class 'pandas.core.frame.DataFrame'>
Index: 2 entries, x to b
Data columns (total 5 columns):
a    2 non-null int64
b    2 non-null int64
c    2 non-null int64
d    2 non-null int64
e    2 non-null int64
dtypes: int64(5)
memory usage: 96.0+ bytes

?.describe( )で基礎統計量を表示できます。

>>>burogu.describe ( )
              a         b         c         d          e
count  2.000000  2.000000  2.000000  2.000000   2.000000
mean   3.500000  4.500000  5.500000  6.500000   7.500000
std    3.535534  3.535534  3.535534  3.535534   3.535534
min    1.000000  2.000000  3.000000  4.000000   5.000000
25%    2.250000  3.250000  4.250000  5.250000   6.250000
50%    3.500000  4.500000  5.500000  6.500000   7.500000
75%    4.750000  5.750000  6.750000  7.750000   8.750000
max    6.000000  7.000000  8.000000  9.000000  10.000000

・locとiloc

locは行か列を指定して値を取得できます。試しにburoguのcとeの値を取り出します。

hatena.loc['index', 'columns']
hatena.loc['burogu',['c','e']]
c 8
e 10

ilocはindexを指定して値を取り出せます。次のように書くと0行0列、つまり1行目の1列目で1が取り出せます。

hatena.iloc[0,[0]]
atena  1

・csvデータを読み込む

>>>f= pd.read_csv(' ファイル名 ')
>>>f.head( )
結果が出る

f.tail( )は最後の5行を表示できます。

・欠損データの確認

>>>hatena.isnull( )
False (ない)true(ある)

・欠損データを埋める

hatena.fillna( )

で欠損の穴埋めができます。(method='ffill')は最後に有効な値をデータに使ってます。

hatena.fillna(hatena['???'].median( ))

で中央値を欠損データに代入できます。