pandasに取込したデータを使って抽出・ソートなどを紹介

blog-icatch-58

前回、pandasのインストールからデータの読み込み・確認・書き込みまでの基本的な操作方法を紹介しましたが、今回は取り込みしたデータを抽出したり並び替えしたりする、より実践的な操作方法について説明したいと思います。

目次

  • 列の追加・データの追加
  • 列や行を指定して抜き出し
  • 条件に合った行を抜き出し
  • データの並び替え

列の追加・データの追加

pandas.DataFrame(df)にデータを取り込みしているとして説明する。

列を追加する方法

列を新規追加

[新規列名]を指定することで、列の追加を初期値を作成

df[‘NEW’] = 0

ポイント

列名に存在しないものを指定した場合は、新規追加

別オブジェクトとして作成

df_new = df.assign(NEW=0)

print(df_new)

ポイント

元のオブジェクトと別オブジェクトで利用したい場合に利用

列名が既にあるものを指定した場合は、データ初期化

 データを追加する方法

行データを追加

indexを指定して追加

df.loc[‘TEN’] = 0

ポイント

存在しないindexを指定した場合は、行追加

存在するindexを指定した場合は、データを初期化

行データを追加(データ指定)

df.loc[‘TEN’] = [‘a10’, ‘b10’, ‘c10’]

ポイント

データを指定して追加する場合、列数とデータ項目数を合わせるように(エラー発生となります)

列や行を指定抜き出し

pandas.DataFrame(df)から特定な列のみを抜き出しをする方法を説明する。

列名・列番号を指定して抜き出し

df[‘no’]

df.loc[:,’no’]

df.iloc[:,0]

df.ix[:,’no’]

列を複数指定して抜き出し

df[[‘no’,’data’]]

df.loc[:,[‘no’,’data’]]

df.iloc[:,0:1]

df.ix[:,[‘no’,’data’]]

ポイント

複数の列名を指定する場合は、リスト表記する

列と行を指定して抜き出し

no列を5行から10行まで抜き出し

df.loc[4:9,’no’]

df.iloc[4:9,0]

df.ix[4:9,0]

ポイント

数字指定は、0からスタートなので間違えないように

df.ix は、名称・数字指定どちらでも利用できるので、これだけを覚えておけば良いのかも…

 条件に合った行の抜き出し

pandas.DataFrame(df)から、条件を指定してデータを抜き出しをする方法を説明する。SQLで言うSELECTクエリのようなものである。

DataFrameに条件指定する

列名 no に10があるデータを抜き出し

df[df.no == 10]

ポイント

条件指定には、== , != , < , <=, > , >= を利用する

query メソッドを利用

列名 no に10があるデータを抜き出し

df.query(“df.no == 10”)

列名 no に5~10があるデータを抜き出し

df.query(“df.no <= 5 & df.no <= 10”)

ポイント

複数指定する場合は、and , or , not は、& , | , ~ を利用する

条件に文字列がある場合は、’ で囲むこと

query メソッド 変数を利用

条件指定に変数を利用する場合

param=10

df.query(“df.no == @param”)

ポイント

条件に変数を利用する場合は、変数の頭に @ を付けること

データの並び替え

pandas.DataFrame(df)から、データの並び替え(ソート)をする方法を説明する。

データの並び替え

df.sort(‘no’)

df.soft([‘no’,’data’])

df.sort(’no’,ascending=False)

df.sort([‘no’, ‘data’], ascending=[False, True])

ポイント

複数指定する場合は、リスト表記すること

並び替えは昇順(デフォルト)、降順にする場合は ascending = False を指定すること

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


上の計算式の答えを入力してください

CAPTCHA