Pythonのライブラリの1つであるPandasの学習者向けに、各種操作を一覧で確認できるようにしました。
- データフレーム
- 各種操作一覧
- pandasのインポート
- CSVファイルの読み込み
- Excelファイルの読み込み
- 読み込んだファイルのデータ型の確認
- 表示する行を指定する
- 表示する列を指定する
- 表示する行列数をリセットする
- 先頭の行数を指定して取得
- 末尾の行数を指定して取得
- ランダムに行数を指定して取得
- データフレームの情報を調べる
- 平均、標準偏差などの統計量を取得
- 統計量を小数点以下の桁数を指定して取得
- DataFrameの作成
- 行名(インデックス)を取得
- 列名(カラム)を取得
- 行列名(カラム・インデックス)の指定
- カラム名の一部を変更
- インデックス名の一部を変更
- 指定した行の情報を取得
- Seriesとしてカラムのデータ型を取得
- データフレームとしてカラムのデータ型取得
- locで行列を指定して取得
- 指定した列の全ての値を取得
- ilocで行列番号を指定して取得
- 指定した行列の値を変更する
- 複数のデータを変更
- スライスで複数の行列を取得
- get_locで行列番号を取得
- ilocで値を変更する
- 列ごとのデータ型を調べる
- 行数と列数を取得
- 行列の入替
- Seriesの作成
- Seriesの値を取得
- Seriesのインデックスを指定して値を取得
- インデックス番号を指定して値を取得
- リストを用いて複数の値を取得
- 比較演算子を用いて各要素の真偽を確認
- 比較演算子を用いて、条件に合う値を取得
- Seriesの要素数を取得
- インデックスとデータに名前を付ける
- Seriesの四則演算
- Series同士の演算
- Seriesの欠損値の確認
- どの要素が欠損値か調べる
データフレーム
Excelと同じように行と列で構成されており、行名や列名などを指定することができるため、ラベル付きの二次元の配列と言えます。
各種操作一覧
pandasのインポート
1 |
import pandas as pd |
pandasをpdとしてインポートします。
CSVファイルの読み込み
1 |
変数=pd.read_csv('ファイルパス',encoding='shift-jis') |
CSVファイルを読み込みます。encodingの部分は文字コードを指定する場合に必要です。他にもutf-8などを指定することもできます。
Excelファイルの読み込み
1 |
変数=pd.read_excel('ファイルパス',encoding='utf-8') |
Excelファイルを読み込みます。
読み込んだファイルのデータ型の確認
1 |
type(ファイルを格納した変数) |
ファイルを読み込んだ変数を指定することでデータ型を確認することができます。
表示する行を指定する
1 2 |
pd.set_option('display.max_rows', 100) pd.set_option('display.max_rows', None) |
Noneと指定することですべての行を指定することができます。
表示する列を指定する
1 |
pd.set_option('display.max_columns', 100) |
表示する行列数をリセットする
1 2 |
pd.reset_option('display.max_rows') pd.reset_option('display.max_columns') |
先頭の行数を指定して取得
1 2 |
変数.head() 変数.head(10) |
指定をしない場合は先頭5行が表示されます。()の中で行数を指定することでもできます。
末尾の行数を指定して取得
1 |
変数.tail(10) |
最後の行数を指定して表示することができます。
ランダムに行数を指定して取得
1 |
変数.sample(10) |
()内で行数を指定してランダムに取得することができます。
データフレームの情報を調べる
1 |
変数.info() |
データ型、行列数、列名、各列のデータ型、欠損値の有無、メモリ使用量などを確認することができます。
平均、標準偏差などの統計量を取得
1 |
変数.describe() |
平均値、標準偏差、最大・最小値、四分位数などの要約統計量などを取得することができます。
統計量を小数点以下の桁数を指定して取得
1 |
変数.describe().round(0) |
roundメソッドを使用して0を指定することで小数点以下を丸めることができます。
DataFrameの作成
1 2 |
df = pd.DataFrame([["a","b","c"],["d","e","f"],["g","h","i"]]) df = pd.DataFrame([["a","b","c"],["d","e","f"],["g","h","i"]],columns=['col1','col2','col3'],index=['index1','index2','index3']) |
行名を指定するときは”columns=~” 列名を指定するときは”index=~”と指定します。
行名(インデックス)を取得
1 |
変数.index |
実行結果に”dtype”が出てきますが、これはインデックスのデータ型を表します。
列名(カラム)を取得
1 |
変数.columns |
行列名(カラム・インデックス)の指定
1 2 |
変数.columns=['col1','col2','col3'] 変数.index=['idx1','idx2','idx3'] |
後からカラム名、インデックス名を上書きする場合も同様です。
カラム名の一部を変更
1 |
変数.rename(columns={'col1':'a'}) |
カラム名はリストで作成されていますが、その要素の1つだけを指定してカラム名を変更することができます。
インデックス名の一部を変更
1 |
変数.rename(idx={'col1':'a'}) |
指定した行の情報を取得
1 |
変数['カラム名'] |
列の値、名前、対応するインデックス、データ型などを取得することができます。
Seriesとしてカラムのデータ型を取得
1 |
type(変数['カラム名']) |
データフレーム内の指定した列のデータ型を確認することができます。この方法の場合seriesとして取得されます。
データフレームとしてカラムのデータ型取得
1 |
type(変数[['カラム名']]) |
locで行列を指定して取得
1 2 3 |
変数.loc['カラム名'] 変数.loc['インデックス名'] 変数.loc['インデックス名'],['カラム名'] |
行ごと、列ごと指定して取得することができますし、行列を指定してその値を取得することもできます。
行列を指定して値を取得するときはインデックス名(行名)から先に指定する必要があります。
指定した列の全ての値を取得
1 |
変数.loc[:,'カラム名'] |
“:” コロンによって行すべてを指定しています。
ilocで行列番号を指定して取得
1 2 |
変数.iloc[:,0] 変数.iloc[0] |
1行目で指定した列すべての値を、2行目で指定した行すべての値を取得しています。
指定した行列の値を変更する
1 |
変数.loc['インデックス名','カラム名']=値 |
複数のデータを変更
1 2 |
変数.loc[:,'カラム名']=['値','値','値'] 変数.loc['インデックス名']=['値','値','値'] |
1行目で列全体の値を変更しています。
2行目で行全体の値を変更しています。
スライスで複数の行列を取得
1 2 3 |
変数.loc[:,'カラム名','カラム名'] 変数.loc['インデックス名','インデックス名'] 変数.loc['インデックス名':'インデックス名','カラム名':'カラム名'] |
1行目で複数列の値、2行目で複数行の値、3行目で複数行列の値を取得しています。
ilocメソッドを用いると行列番号を指定して同様に取得することができます。
get_locで行列番号を取得
1 2 |
変数.index.get_loc('インデックス名') 変数.columns.get_loc('カラム名') |
ilocで値を変更する
1 |
変数.iloc[変数.index.get_loc('インデックス名'),変数.columns.get_loc('カラム名')]=500 |
列ごとのデータ型を調べる
1 |
変数.dtypes |
行数と列数を取得
1 |
変数.shape |
行列の入替
1 |
変数.T |
Seriesの作成
1 |
変数 = pd.Series([1,2,3,4,5]) |
Series内の各要素はほかの数値や文字列も代入できます。
Seriesの値を取得
1 |
変数.values |
Seriesのインデックスを指定して値を取得
1 |
変数.['インデックス名'] |
インデックス名は文字列を指定することもできます。
インデックス番号を指定して値を取得
1 |
変数[0] |
インデックス番号は0からスタートします。0以外のインデックス番号も考えられます。
リストを用いて複数の値を取得
1 |
変数[[0,2]] |
0,2はインデックス番号のため、これ以外のインデックス番号ももちろん考えられます。
比較演算子を用いて各要素の真偽を確認
1 |
変数 > 2 |
各要素が2よりも大きいかTrue Falseで返します。
比較演算子を用いて、条件に合う値を取得
1 |
変数[変数>2] |
2よりも大きい値をすべて取得できます。
Seriesの要素数を取得
1 |
変数.size |
インデックスとデータに名前を付ける
1 2 |
変数.index.name = 'インデックス名' 変数.name = 'データ名' |
Seriesの四則演算
1 |
変数 + 2 |
全ての要素に2が加えられます。他の演算も同様です。
Series同士の演算
1 |
変数 + 変数 |
Series同士に同じインデックス名がある場合に演算できます。
一方にしかインデックス名が存在しない要素はNaNと表示され、欠損値となります。
Seriesの欠損値の確認
1 |
変数.hasnans |
欠損値がある場合はTrue、欠損値がない場合はFalseを返します。
どの要素が欠損値か調べる
1 |
pd.isnul(変数) |
各要素が欠損値であるかを調べ、欠損値の場合にTrueを返します。
コメント