Pythonの勧め(3)Pandasについて

Pythonの勧め(3)Pandasについて

Pandasは外部のデータをPythonに取り込み、表として表示してくれたり集計したりと非常に便利なライブラリです。
PandasにはSeriesとDataFrameがありデータ構造を作成するものです。
機械学習やデータ分析を行う上で簡単にデータ構造を作ったり、あるいは別の資料から読み込んだりできて非常に便利なものです。

PandasのSeriesを使う

Seriesは1次元のデータ構造を作るものです。簡単に言うと便利なメソッドを持った配列を作るものです。
以下はSeriesの使い方の例です。

import pandas as pd
from pandas import Series
ages = Series([20,45,60,53,31],index = ['Oda','Toyotomi','Tokugawa','Asikaga','Taira'])
ages

結果
Oda 20
Toyotomi 45
Tokugawa 60
Asikaga 53
Taira 31
dtype: int64

ages['Oda']

結果
20

ある値以上のものを表示する例

ages[ages>40]

結果
Toyotomi 45
Tokugawa 60
Asikaga 53
dtype: int64

Seriesを辞書に変更する例

ages_dic = ages.to_dict()
ages_dic

結果
{‘Asikaga’: 53, ‘Oda’: 20, ‘Taira’: 31, ‘Tokugawa’: 60, ‘Toyotomi’: 45}

辞書をSeriesに変更する例

ages_Series = Series(ages_dic)
ages_Series

結果
Asikaga 53
Oda 20
Taira 31
Tokugawa 60
Toyotomi 45
dtype: int64

Seriesに名前をつけることができます。

ages.name = '年齢一覧'
ages

結果
Oda 20
Toyotomi 45
Tokugawa 60
Asikaga 53
Taira 31
Name: 年齢一覧, dtype: int64

indexに名前をつける

ages.index.name = '名前'
ages

結果
名前
Oda 20
Toyotomi 45
Tokugawa 60
Asikaga 53
Taira 31
Name: 年齢一覧, dtype: int64

DataFrameの使い方

DataFrameは2次元のデータ構造を作ります。簡単にいうと表を作るものです。

コピーしたデータ(クリップボードのデータ)を使う方法

食品成分ランキングのページの表をコピーして利用してみます。

pandasのインポート

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

ここでネット上のデータ(tableなどで作成されたデータ)をコピーします。

次のコードでコピーしたデーターをPythonに読み込み、Jupyter上に表として表示します。

frame = pd.read_clipboard()
frame

表示結果

表のヘッダ部分を表示するには以下のようにします。

frame.columns

結果
Index([‘順位’, ‘食品名’, ‘成分量’], dtype=’object’)

特定の列だけを表示させる例です。

frame['食品名']

結果

複数の列も指定することができます。

frame[['食品名','成分量']]

結果

head()は最初から5行まで表示します。引数を入れると引数で指定した行まで表示します。

frame.head()

結果

frame.head(3)

結果

下から数えて表示したい場合はtail()を使います。これも引数で何番目までか指定できます。

frame.tail(3)

結果

新規で列を増やすこともできます。

frame['備考'] = "SampleA"
frame

結果

np.arange()で配列を作成して挿入することもできます。

frame['備考'] = np.arange(11)
frame

結果

Series()で配列を作成して新しい列に挿入する例

remarks = Series(["SampleB",'SampleC'],index=[4,8])
frame['備考'] = remarks
frame

結果

特定の列を削除するには「del」を使用します。

del frame['備考']
frame

結果

辞書をPandasで表にする

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

data = {'drink':['juice','cafe','tea'],'price':[300,380,400]}
drink_frame = DataFrame(data)
drink_frame

結果

csvファイルの読み込み

Pandasを使ってCSVファイルを読み込むことができます。読み込まれたデータはPandas.DataFrameとなり便利なPandasのメソッドやプロパティを使うことができます。

train = pd.read_csv("train.csv")