Python

Python:データから情報を取り出す

スポンサーリンク

はじめに

データ分析の流れを説明するシリーズで、「データの概要把握」のプロセスに関する記事を書いています。「データの概要把握」のプロセスでは、これまで、データの読み込みから始めて、データの確認データ型の変換列名の変更と値の変換条件に応じて代入する値を変える、と扱ってきました。

Python初心者向け:データの読み込むときのいろんなパターンを解説
Python初心者の方でも迷わずにデータを読み込むことができるように基本から解説します。手元にあるデータはいつもきれいなデータとは限りません。先頭に不要な行があったり、列項目をすべて使う必要がない場合もあります。このようなデータの取り込みを例を使って説明します。
Python初心者向け:読み込んだデータをまず確認する方法をお伝えします
Python初心者の方でもわかるように、まずはデータを確認する方法をお伝えします。単純に読み込んだデータの先頭の数行や末尾の数行、各列のデータ型などを確認する方法を基本からお伝えします。最後に基本統計量をまとめて抽出する方法もご紹介します。
Python初心者向け:データ型の変換を基本から解説
Python初心者の方向けにデータ型を変換する方法を基本から解説します。文字列型→数値型、数値型→文字列型とする方法を説明した後、日付型→文字列型、文字列型→日付型とする方法を説明します。データを読み込んだ後はデータ型を確認して、適切な型で扱うようにしましょう。
Python:列名の変更と値の変換
はじめに 今年の初めから、データ分析の流れをシリーズで掲載しています。前回までに データの読み込み 基本統計量など、基本的なデータの概要把握 データ型の変換 を扱いました。 デ...
Python初心者向け:条件に応じて代入する値を変える方法を解説
Python初心者の方でも簡単に、条件に応じて値を代入する方法を基本から解説します。今回は、ブールインデックスとwhere( )メソッドを使う方法を基本からお伝えします。この投稿をみていただくことで、条件式をにより代入する値をかえることができるようになります。

今回は、読み込んだデータフレームからデータを取り出す方法を整理します。

サンプルデータの作成

import pandas as pd
import numpy as np

df_sample = pd.DataFrame(np.arange(40).reshape(10, 4),columns=['A','B','C','D'])
df_sample

 

列名で列を取り出す

まずは列名でデータを取り出す方法を扱います。これは簡単です。角括弧[ ] で囲んで取り出します。このとき、角括弧[ ]を一重にするか、二重にするかで次のような違いがあります。

# 角括弧を一重にして列名を指定
df_sample['B']

これは、pandasのSeriesとして取り出す方法となります。次に角括弧[ ]を二重にして列名を指定すると

# 角括弧を二重にして列名を指定
df_sample[['B']]

データフレームとして取り出されます。また、列名を複数指定する場合は次のようにします。

# 列名を複数指定する場合
df_sample[['B','C']]

これはもちろん、データフレームとして取り出されます。

行番号で行を取り出す

次に行番号で情報を取り出すことを考えます。行番号を指定するので、当然、行が取り出されます。

# 5行目から7行目を取り出す
df_sample[5:8]

次のようなこともできます。

# 0行目から8行目を3行ごとに抽出
df_sample[0:9:3]

全データを対象にして、2行ごとにデータを抽出する場合は、次のように書きます。

# 全データを対象に2行ごとにデータを取り出す
df_sample[::2]

locで行番号と列名を同時に指定する

列名での取り出しと、行番号での取り出しを扱いました。ここでは、行番号と列名を同時に指定して情報を取り出します。

# 3行目から5行目のB列を取り出す
df_sample.loc[3:5,'B']

locでは、3:5のような記述をしたときに「未満」ではなく「以下」となることに注意してください。そのため、3行目から4行目ではなく、3行目から5行目のB列が取り出されます。
※行数は、0行目という数え方をしています。

いくつか他にも例をみてみましょう。

# 列を作数指定した場合
df_sample.loc[3:5,['B','C']]

これは次のように書いても同じ結果となります。

df_sample.loc[3:5,'B':'C']

条件に一致する行を取り出す

最後に条件に一致した行の取り出し方を見ておきましょう。これはデータフレーム[ ] として[ ]のなかにブール値をいれればOKです。

df_sample[df_sample['B']>15]

これは、df_sample[‘B’]>15の部分が次のようなブール値となります。

df_sample['B']>15

そのため、データフレームから4行目から9行目までのデータが取り出されます。

 

スポンサーリンク

まとめ

さて、いかがでしたでしょうか?今回はデータフレームから情報を取り出す方法を扱いました。まだまだいろんな方法がありますが、まずは基本としてここで紹介した方法を押さえておけば、簡単なデータの操作はできるでしょう。

コメント

タイトルとURLをコピーしました