望月の息抜き

在宅勤務の息抜きです。主にプログラミングについて書いていきたいと思います。

【Python】【18】Pandasを利用してデータ分析をしてみよう③

【記事の目標】

Pandasを利用してデータ分析(表連結)してみよう。

 

【作業手順】

1.Pandasをインストール

2.Pandasをインポート

3.テストデータを作成して読み込もう

4.表を結合してみよう

5.同じ値のみを抽出してみよう

 

1.Pandasをインストール

以下記事の「1.」と「2.」の手順で実施しましょう。

【Python】【14】Pandasを利用して表を表示してみよう

 

2.Pandasをインポート

以下のようにインポートしましょう。

 import pandas as pd

これで、Pandasが利用できるようになりました。

 

3.テストデータを作成して読み込もう

今回は表結合に利用するデータを定義していきます。

以下のように、2つの表データを設定してみましょう。

f:id:fysker:20220129175439p:plain

f:id:fysker:20220129175455p:plain

1つ目のファイルを「blog_test_5.csv」、2つ目のファイルを「blog_test_6.csv」で保存しましょう。
私の場合は以下のように保存しています。

f:id:fysker:20220129175647p:plain

では、この2つのファイルを読み込みましょう。

 data1 = pd.read_csv('./csv/blog_test_5.csv', index_col='time')
data2 = pd.read_csv('./csv/blog_test_6.csv', index_col='time')

index_col を指定して読み込ませます。

 

4.表を結合してみよう

では、読み込んだデータ同士を結合してみましょう。

 concat_data = pd.concat([data1, data2])
print(concat_data)

結合する場合は、pandas の concat() を利用します。

concat() の引数に結合したい表を配列で渡すことで表を結合してくれます。

では、実行してみましょう。

f:id:fysker:20220129180131p:plain

2つの表が結合されていますね。

同じ列名の部分は綺麗に表示されていて、結合したときにデータが存在しない部分は NaN で表示されています。

 

5.同じ行のみを抽出してみよう

「3.」で作成した、「blog_test_6.csv」のデータを以下に書き換えましょう。

f:id:fysker:20220129181154p:plain

同じ行というのはインデックスが同じという意味になります。

なので、今回は time の列をインデックスに指定しているため、書き換えたことにより、どちらのファイルにも time が 3 の行が設定されていることになります。

では、修正したデータを読み込んで同じ行のみを抽出してみましょう。

 merge_data = pd.merge(data1, data2)
print(merge_data)

同じ行のみを抽出する場合は、pandas の merge() を利用します。

merge() の引数に2つのデータを渡すことで、同じ行を抽出してくれます。

では、実行してみましょう。

f:id:fysker:20220129181807p:plain

・「blog_test_5.csv」の time が 3 の num1 は 2 、num2 は 4、num3 は未定義

・「blog_test_6.csv」の time が 3 の num1 は未定義 、num2 は 4、num3 は 9

time が 3 のデータのみ抽出できていますね。

 

 

今回も引き続き Pandas を利用しています。

入り口部分の簡単なところだけ記事にしていますが、応用していくと様々な分析ができるようになっています。