kharuka2016のブログ

日々の出来事を書き留めておくブログ

データ解析の基礎その2-indexを使ったマージ-

入門 Python 3

入門 Python 3

目次

前提条件

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

NumPyのインストール

手順概要

  1. コマンドプロンプトでIPython Notebookを起動します。

  2. indexを使ったマージ

手順

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2. indexを使ったマージ

2.1. numpy,pandas,DataFrameをimportします。
import numpy as np
import pandas as pd
from pandas import DataFrame
2.2. データフレームを作成します。

df_left

df_left=DataFrame({'key':['X','Y','Z','X','Y'],'data':range(5)})
df_left

Out:

   data    key
0  0  X
1  1  Y
2  2  Z
3  3  X
4  4  Y

df_right

df_right=DataFrame({'group_data':[10,20]},index=['X','Y'])
df_right

Out:

   group_data
X   10
Y   20
2.3. df_rightのindexを使ってマージ(内部結合)します。
pd.merge(df_left,df_right,left_on='key',right_index=True)

Out:

   data    key group_data
0  0  X   10
3  3  X   10
1  1  Y   20
4  4  Y   20
2.4. df_rightのindexを使ってマージ(完全外部結合)します。
pd.merge(df_left,df_right,left_on='key',right_index=True,how='outer')

Out:

   data    key group_data
0  0  X   10
3  3  X   10
1  1  Y   20
4  4  Y   20
2  2  Z   NaN
2.5. indexに階層構造があるデータフレームを作成します。

df_lert_hr

df_left_hr=DataFrame({'key1':['SF','SF','SF','LA','LA'],'key2':[10,20,30,20,30],'data_set':np.arange(5)})
df_left_hr

Out:

   data_set    key1    key2
0  0  SF  10
1  1  SF  20
2  2  SF  30
3  3  LA  20
4  4  LA  30

df_right_hr

df_right_hr=DataFrame(np.arange(10).reshape((5,2)),index=[['LA','LA','SF','SF','SF'],[20,10,10,10,20]],columns=['col_1','col_2'])
df_right_hr

Out:

       col_1   col_2
LA  20 0  1
    10 2  3
SF  10 4  5
    10 6  7
    20 8  9
2.6. indexに階層構造があるデータフレームをマージします。
pd.merge(df_left_hr,df_right_hr,left_on=['key1','key2'],right_index=True)

Out:

   data_set    key1    key2    col_1   col_2
0  0  SF  10 4  5
0  0  SF  10 6  7
1  1  SF  20 8  9
3  3  LA  20 0  1
2.7. DataFrameのメソッドjoinを使ってマージします。
df_left.join(df_right)

Out:

   data    key group_data
0  0  X   NaN
1  1  Y   NaN
2  2  Z   NaN
3  3  X   NaN
4  4  Y   NaN

スクリーンショット

f:id:kharuka2016:20170825172446p:plainf:id:kharuka2016:20170825172453p:plainf:id:kharuka2016:20170825172458p:plainf:id:kharuka2016:20170825172504p:plain

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com

Pythonスタートブック

Pythonスタートブック