kharuka2016のブログ

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

データ解析の基礎その2-データの連結-

入門 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. データの連結

手順

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

ipython notebook

2. データの連結

2.1. ライブラリをimportします。
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
2.2. arrayを作成します。
arr1=np.arange(9).reshape((3,3))
arr1

Out:

array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

2.3. arrayを行方向に連結します。

np.concatenate([arr1,arr1],axis=1)

Out:

array([[0, 1, 2, 0, 1, 2],
       [3, 4, 5, 3, 4, 5],
       [6, 7, 8, 6, 7, 8]])

2.4 arrayを列方向に連結します。

np.concatenate([arr1,arr1],axis=0)

Out:

array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8],
       [0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

2.5. Seriesを作成します。

ser1=Series([0,1,2],index=['T','U','V'])
ser2=Series([3,4],index=['X','Y'])

ser1

ser1

Out:

T    0
U    1
V    2
dtype: int64

ser2

ser2

Out:

X    3
Y    4
dtype: int64

2.6. Seriesの連結をします。

pd.concat([ser1,ser2])

Out:

T    0
U    1
V    2
X    3
Y    4
dtype: int64

2.7. Seriesの連結をします。

pd.concat([ser1,ser2,ser1])

Out:

T    0
U    1
V    2
X    3
Y    4
T    0
U    1
V    2
dtype: int64

2.8. Seriesの列連結をします。

pd.concat([ser1,ser2],axis=1)

Out:

   0  1
T   0  NaN
U   1  NaN
V   2  NaN
X   NaN 3
Y   NaN 4

2.9. keyを指定してSeriesの連結をします。

pd.concat([ser1,ser2],keys=['cat1','cat2'])

Out:

cat1  T    0
      U    1
      V    2
cat2  X    3
      Y    4
dtype: int64

2.10. keyを指定してSeriesの列連結をします。

pd.concat([ser1,ser2],axis=1,keys=['cat1','cat2'])

Out:

cat1   cat2    
T   0  NaN
U   1  NaN
V   2  NaN
X   NaN 3
Y   NaN 4

2.11. DataFrameを作成します。

dframe1

dframe1=DataFrame(np.random.randn(4,3),columns=['X','Y','Z'])
dframe1

Out:

   X   Y   Z
0  1.16751    0.123099   0.523345
1  -0.636396  -0.085253  -2.135688
2  1.297889   0.497437   0.966302
3  1.446753   -0.49243   0.99713

dframe2

dframe2=DataFrame(np.random.randn(3,3),columns=['Y','Q','X'])
dframe2

Out:

   Y   Q   X
0  1.640828   0.453055   -0.563368
1  -0.343907  0.888421   0.692719
2  0.375825   -1.320076  -0.021166

2.12. DataFrameを連結します。

pd.concat([dframe1,dframe2])

Out:

   Q   X   Y   Z
0  NaN 1.16751    0.123099   0.523345
1  NaN -0.636396  -0.085253  -2.135688
2  NaN 1.297889   0.497437   0.966302
3  NaN 1.446753   -0.49243   0.99713
0  0.453055   -0.563368  1.640828   NaN
1  0.888421   0.692719   -0.343907  NaN
2  -1.320076  -0.021166  0.375825   NaN

2.13. indexを無視して連番にしてDataFrameを連結します。

pd.concat([dframe1,dframe2],ignore_index=True)

Out:

   Q   X   Y   Z
0  NaN 1.16751    0.123099   0.523345
1  NaN -0.636396  -0.085253  -2.135688
2  NaN 1.297889   0.497437   0.966302
3  NaN 1.446753   -0.49243   0.99713
4  0.453055   -0.563368  1.640828   NaN
5  0.888421   0.692719   -0.343907  NaN
6  -1.320076  -0.021166  0.375825   NaN

スクリーンショット

f:id:kharuka2016:20170830105637p:plainf:id:kharuka2016:20170830105643p:plainf:id:kharuka2016:20170830105647p:plainf:id:kharuka2016:20170830105650p:plainf:id:kharuka2016:20170830105655p:plainf:id:kharuka2016:20170830105702p:plain

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

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

参考:

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

www.udemy.com

Pythonスタートブック

Pythonスタートブック