データ解析の基礎その2-データのマージ-
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
目次
- 前提条件
- 手順概要
- 手順
- 1.コマンドプロンプトでIPython Notebookを起動します。
- 2. データのマージ
- 2.1. numpy,pandas,DataFrameをimportします。
- 2.2. データフレームを作成します。
- 2.3 データフレームをマージ(内部結合)します。
- 2.4. どのキーに関してマージするか明示します。
- 2.5. データフレームをマージ(左外部結合)します。
- 2.6. データフレームをマージ(右外部結合)します。
- 2.7. データフレームをマージ(完全外部結合)します。
- 2.8. 多対多のkeyを持つデータフレームを作成します。
- 2.9. 多対多のkeyを持つデータフレームをマージします。
- 2.10. 複数キーを持つデータフレームを作成します。
- 2.11. 複数キーを持つデータフレームをマージ(完全外部結合)します。
- 2.12. key1についてデータフレームをマージ(内部結合)します。
- 2.13. key1についてsuffixを利用してデータフレームをマージ(内部結合)します。
- スクリーンショット
前提条件
OS:Windows 10 64-bit, version 1607
Anaconda 4.4.0(Python 3.6 version 64-bit)インストール
NumPyのインストール
手順概要
コマンドプロンプトでIPython Notebookを起動します。
データのマージ
手順
1.コマンドプロンプトでIPython Notebookを起動します。
ipython notebook
2. データのマージ
2.1. numpy,pandas,DataFrameをimportします。
import numpy as np import pandas as pd from pandas import DataFrame
2.2. データフレームを作成します。
dframe1
dframe1=DataFrame({'key':['X','Z','Y','Z','X','X'],'data_set_1':np.arange(6)}) dframe1
Out:
data_set_1 key 0 0 X 1 1 Z 2 2 Y 3 3 Z 4 4 X 5 5 X
dframe2
dframe2=DataFrame({'key':['Q','Y','Z'],'data_set_2':[1,2,3]}) dframe2
Out:
data_set_2 key 0 1 Q 1 2 Y 2 3 Z
2.3 データフレームをマージ(内部結合)します。
pd.merge(dframe1,dframe2)
Out:
data_set_1 key data_set_2 0 1 Z 3 1 3 Z 3 2 2 Y 2
2.4. どのキーに関してマージするか明示します。
pd.merge(dframe1,dframe2,on='key')
2.5. データフレームをマージ(左外部結合)します。
pd.merge(dframe1,dframe2,on='key',how='left')
Out:
data_set_1 key data_set_2 0 0 X NaN 1 1 Z 3 2 2 Y 2 3 3 Z 3 4 4 X NaN 5 5 X NaN
2.6. データフレームをマージ(右外部結合)します。
pd.merge(dframe1,dframe2,on='key',how='right')
Out:
data_set_1 key data_set_2 0 1 Z 3 1 3 Z 3 2 2 Y 2 3 NaN Q 1
2.7. データフレームをマージ(完全外部結合)します。
pd.merge(dframe1,dframe2,on='key',how='outer')
Out:
data_set_1 key data_set_2 0 0 X NaN 1 4 X NaN 2 5 X NaN 3 1 Z 3 4 3 Z 3 5 2 Y 2 6 NaN Q 1
2.8. 多対多のkeyを持つデータフレームを作成します。
dframe3
dframe3=DataFrame({'key':['X','X','X','Y','Z','Z'],'dataset_3':range(6)}) dframe3
Out:
dataset_3 key 0 0 X 1 1 X 2 2 X 3 3 Y 4 4 Z 5 5 Z
dframe4
dframe4=DataFrame({'key':['Y','Y','X','X','Z'],'dataset_4':range(5)}) dframe4
Out:
dataset_4 key 0 0 Y 1 1 Y 2 2 X 3 3 X 4 4 Z
2.9. 多対多のkeyを持つデータフレームをマージします。
pd.merge(dframe3,dframe4)
Out:
dataset_3 key dataset_4 0 0 X 2 1 0 X 3 2 1 X 2 3 1 X 3 4 2 X 2 5 2 X 3 6 3 Y 0 7 3 Y 1 8 4 Z 4 9 5 Z 4
2.10. 複数キーを持つデータフレームを作成します。
df_left
df_left=DataFrame({'key1':['SF','SF','LA'],'key2':['one','two','one'],'left_data':[10,20,30]}) df_left
Out:
key1 key2 left_data 0 SF one 10 1 SF two 20 2 LA one 30
df_right
df_right=DataFrame({'key1':['SF','SF','LA','LA'],'key2':['one','one','one','two'],'right_data':[40,50,60,70]}) df_right
Out:
key1 key2 right_data 0 SF one 40 1 SF one 50 2 LA one 60 3 LA two 70
2.11. 複数キーを持つデータフレームをマージ(完全外部結合)します。
pd.merge(df_left,df_right,on=['key1','key2'],how='outer')
Out:
key1 key2 left_data right_data 0 SF one 10 40 1 SF one 10 50 2 SF two 20 NaN 3 LA one 30 60 4 LA two NaN 70
2.12. key1についてデータフレームをマージ(内部結合)します。
pd.merge(df_left,df_right,on='key1')
Out:
key1 key2_x left_data key2_y right_data 0 SF one 10 one 40 1 SF one 10 one 50 2 SF two 20 one 40 3 SF two 20 one 50 4 LA one 30 one 60 5 LA one 30 two 70
2.13. key1についてsuffixを利用してデータフレームをマージ(内部結合)します。
pd.merge(df_left,df_right,on='key1',suffixes=['_lert','_right'])
Out:
key1 key2_lert left_data key2_right right_data 0 SF one 10 one 40 1 SF one 10 one 50 2 SF two 20 one 40 3 SF two 20 one 50 4 LA one 30 one 60 5 LA one 30 two 70
スクリーンショット
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
- 作者: Andreas C. Muller,Sarah Guido,中田秀基
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
参考:
udemy 実践Pythonデータサイエンス
- 作者: 辻真吾
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 19人 クリック: 199回
- この商品を含むブログ (59件) を見る