はじめに
データ分析の流れを説明するシリーズで、「データの概要把握」のプロセスに関する記事を書いています。「データの概要把握」のプロセスでは、これまで、データの読み込みから始めて、データの確認、データ型の変換、列名の変更と値の変換、条件に応じて代入する値を変える、と扱ってきました。
![](https://happy-analysis.com/wp-content/uploads/2020/01/banner6-320x180.jpg)
![](https://happy-analysis.com/wp-content/uploads/2020/01/banner7-320x180.jpg)
![](https://happy-analysis.com/wp-content/uploads/2020/01/banner8-320x180.jpg)
![](https://happy-analysis.com/wp-content/uploads/2020/01/banner9-320x180.jpg)
![](https://happy-analysis.com/wp-content/uploads/2020/01/head6-320x180.jpg)
今回は、読み込んだデータフレームからデータを取り出す方法を整理します。
サンプルデータの作成
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
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-45.png)
列名で列を取り出す
まずは列名でデータを取り出す方法を扱います。これは簡単です。角括弧[ ] で囲んで取り出します。このとき、角括弧[ ]を一重にするか、二重にするかで次のような違いがあります。
# 角括弧を一重にして列名を指定
df_sample['B']
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-46.png)
これは、pandasのSeriesとして取り出す方法となります。次に角括弧[ ]を二重にして列名を指定すると
# 角括弧を二重にして列名を指定
df_sample[['B']]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-47.png)
データフレームとして取り出されます。また、列名を複数指定する場合は次のようにします。
# 列名を複数指定する場合
df_sample[['B','C']]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-48.png)
これはもちろん、データフレームとして取り出されます。
行番号で行を取り出す
次に行番号で情報を取り出すことを考えます。行番号を指定するので、当然、行が取り出されます。
# 5行目から7行目を取り出す
df_sample[5:8]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-49.png)
次のようなこともできます。
# 0行目から8行目を3行ごとに抽出
df_sample[0:9:3]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-50.png)
全データを対象にして、2行ごとにデータを抽出する場合は、次のように書きます。
# 全データを対象に2行ごとにデータを取り出す
df_sample[::2]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-51.png)
locで行番号と列名を同時に指定する
列名での取り出しと、行番号での取り出しを扱いました。ここでは、行番号と列名を同時に指定して情報を取り出します。
# 3行目から5行目のB列を取り出す
df_sample.loc[3:5,'B']
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-52.png)
locでは、3:5のような記述をしたときに「未満」ではなく「以下」となることに注意してください。そのため、3行目から4行目ではなく、3行目から5行目のB列が取り出されます。
※行数は、0行目という数え方をしています。
いくつか他にも例をみてみましょう。
# 列を作数指定した場合
df_sample.loc[3:5,['B','C']]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-53.png)
これは次のように書いても同じ結果となります。
df_sample.loc[3:5,'B':'C']
条件に一致する行を取り出す
最後に条件に一致した行の取り出し方を見ておきましょう。これはデータフレーム[ ] として[ ]のなかにブール値をいれればOKです。
df_sample[df_sample['B']>15]
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-54.png)
これは、df_sample[‘B’]>15の部分が次のようなブール値となります。
df_sample['B']>15
![](https://happy-analysis.com/wp-content/uploads/2020/01/image-55.png)
そのため、データフレームから4行目から9行目までのデータが取り出されます。
まとめ
さて、いかがでしたでしょうか?今回はデータフレームから情報を取り出す方法を扱いました。まだまだいろんな方法がありますが、まずは基本としてここで紹介した方法を押さえておけば、簡単なデータの操作はできるでしょう。
コメント