#pandasとは
Pythonにて、構造化データ(テーブル型のデータ)を扱うためのライブラリです。ファイルの読み込みやその後の加工・抽出処理などを簡単に行うことができ(SQL的な感覚で行うことができ)、機械学習などのデータの前処理で必須となるライブラリです。
他項目への目次はこちらになります。
#ライブラリインポート
pandasにpdという名前をつけてimportする
import pandas as pd
#ファイルの読み込み
dataframe = pd.read_csv('file.csv',encoding = 'utf-8')
Excel等も同様の方式で読み込み可能です。Pandasの公式ドキュメント[Input/output]encodingにて拡張子の指定も可能です。特定の列だけ取り出す時は、usecols = ['column1']のようにオプションをつけます。
#データ確認
()内に必要な件数を入力します。
dataframe.head(10)
最初からの表示が「head」、最後からの表示が「tail」です。
#データ件数の確認
「dataframe」の件数を確認します。
print(len(dataframe))
#データダンプ
csvでデータをダンプします。
dataframe.to_csv('dump_file.csv', index = False, encoding = 'utf-8', sep=",")
「index」はデータフレームのインデックス出力の有無、「encoding」はエンコード、「sep」は区切り文字を指定します。
#列操作
##列の作成
既存の「column1」と「column2」を足して、「column3」を作ります。
dataframe['column3'] = dataflame['column1'] + dataframe['column2']
##列削除
「column1」を削除します。
dataframe = dataframe.drop(columns = 'column1')
pythonのステートメント「del」を利用しても削除可能です。
del dataframe['column1']
#行操作
行抽出
いくつかの方法がありますが、ここではQueryメソッドをつかった方法を記載します。
「column1」が数値系の定義で、1の行を抽出することを想定します。
dataframe = dataframe.query('columns1 == 1')
「column1」、「column2」が数値系の定義で、双方が1の行を抽出することを想定します。
dataframe = dataframe.query('columns1 == 1 & columns2 == 1')
「column1」が数値系の定義で、1と9と11の行を抽出することを想定します。
dataframe = dataframe.query('columns1 in (1,9,11)')
「column1」がObject系の定義で、「Yes」の行を抽出することを想定します。ダブルコーテーションなので注意です。
dataframe = dataframe.query('columns1 == "Yes"')
#Joinする
「dataframe1」と「dataframe2」をカラム「key」で「Left Outer Join」し、「join_dataframe」とします。
join_dataframe = pd.merge(dataframe1, dataframe2, on = 'key', how = 'inner')
howは、内部結合(inner)、左外部結合(left)、右外部結合(right)、完全外部結合(outer)です。
※カラムを制限したい場合はdataframe1[['column1','column1']]のように付け加えます。
ジョインするテーブルのキーが違う場合は、下記のようにします。
join_dataframe = pd.merge(dataframe1, dataframe2, left_on = 'key1', right_on = 'key2')
#最後に
初心者にもわかるように、Pythonで機械学習を実施する際の必要な知識を簡便に記事としてまとめております。
目次はこちらになりますので、他の記事も参考にして頂けると幸いです。