pandas.DataFrameでのデータ作成・データへのアクセス

「pandas.Seriesでのデータ作成・データへのアクセス」の続き。
次のコードで色々試してみた。

########### DataFrame ###########
#### データフレームの作成
#1-1.numpyからdataFrameを作成
print np.array(
    [
        [10, 11],
        [20, 21]
    ]
)
df = pd.DataFrame(
    np.array(
        [
            [10, 11],
            [20, 21]
        ]
    )
)

print ""
print "### print df"
print df

#1-2.SeriesからdataFrameを作成
s1_1 = pd.Series(np.arange(10, 15))
s1_2 = pd.Series(np.arange(15, 20))
print ""
print "### print s1_1"
print s1_1

print ""
print "### print s1_2"
print s1_2

df1 = pd.DataFrame(
    [
        s1_1,
        s1_2
    ]
)
print ""
print "### print df1"
print df1

#2-1.カラム名を指定して作成
nparray = np.array(
    [
        [10, 11],
        [20, 21]
    ]
)

df = pd.DataFrame(
    nparray,
    columns=['a', 'b']
)
print ""
print "### print df"
print df

#2-2-1.カラム名と対応するカラムデータの指定(列データを作成して設定する)
df2_2_1 = pd.DataFrame(
    {
        'c1':s1_1,
        'c2':s1_2
    }
)
print ""
print "### print df2_2_1"
print df2_2_1

#2-2-2.カラム名と対応するカラムデータの指定(列データを作成して設定する)
df2_2_2 = pd.DataFrame(
    [
        s1_1,
        s1_2
    ],
    index=['r1', 'r2']
)
print ""
print "### print df2_2_2"
print df2_2_2

#### データフレームからの選択
# 番号を指定しての選択
s1_1 = pd.Series(np.arange(10, 15))
s1_2 = pd.Series(np.arange(15, 20))
df3_1 = pd.DataFrame(
    [
        s1_1,
        s1_2
    ],
    index=['r1', 'r2']
)
print ""
print "### print df3_1"
print df3_1
print ""
print "### print df3_1[0:1]      # 1行目の選択"
print df3_1[0:1]      # 1行目の選択
print ""
print "### print df3_1[1:2]      # 2行目の選択"
print df3_1[1:2]      # 2行目の選択
print ""
print "### print df3_1[0:2]      # 1〜2行目の選択"
print df3_1[0:2]      # 1〜2行目の選択
print ""
print "### print df3_1[0]        # 0列目の選択"
print df3_1[0]        # 0列目の選択
print ""
print "### print df3_1[1]        # 1列目の選択"
print df3_1[1]        # 1列目の選択
print ""
print "### print df3_1[[0,2,3]]  # 0列目、2列目、3列目の選択"
print df3_1[[0,2,3]]  # 0列目、2列目、3列目の選択

##loc、ilocを使用した行選択
print ""
print "### print df3_1.loc['r1']      # 1行目の選択"
print df3_1.loc['r1']      # 1行目の選択
print ""
print "### print df3_1.loc['r2']      # 2行目の選択"
print df3_1.loc['r2']      # 2行目の選択
print ""
print "### print df3_1.loc[['r1', 'r2']]      # 1〜2行目の選択"
print df3_1.loc[['r1', 'r2']]      # 1〜2行目の選択



# カラム名を指定しての選択
s1_1 = pd.Series(np.arange(10, 15))
s1_2 = pd.Series(np.arange(15, 20))
df3_2 = pd.DataFrame(
    [
        s1_1,
        s1_2
    ],
    columns=('Open', 'High', 'Low', 'Close', 'Volume'),
    index=['r1', 'r2']
)
print ""
print "###print df3_2 numpyの配列に変換して格納する必要がある"
print df3_2

# カラム名を指定してのdataFrame作成には、一旦numpy配列にデータを変換してから設定する
nparray = np.array(
    [
        s1_1,
        s1_2
    ]
)
df3_2 = pd.DataFrame(
    nparray,
    columns=('Open', 'High', 'Low', 'Close', 'Volume'),
    index=['r1', 'r2']
)
print ""
print "### print df3_2"
print df3_2

print ""
print "### print df3_2['Open']        # 0列目の選択"
print df3_2['Open']        # 0列目の選択
print ""
print "### print df3_2['High']        # 1列目の選択"
print df3_2['High']        # 1列目の選択
print ""
print "### print df3_2[['Open','Low','Close']]  # 0列目、2列目、3列目の選択"
print df3_2[['Open','Low','Close']]  # 0列目、2列目、3列目の選択

結果は次。

### print df
0 1
0 10 11
1 20 21

### print s1_1
0 10
1 11
2 12
3 13
4 14
dtype: int32

### print s1_2
0 15
1 16
2 17
3 18
4 19
dtype: int32

### print df1
0 1 2 3 4
0 10 11 12 13 14
1 15 16 17 18 19

### print df
a b
0 10 11
1 20 21

### print df2_2_1
c1 c2
0 10 15
1 11 16
2 12 17
3 13 18
4 14 19

### print df2_2_2
0 1 2 3 4
r1 10 11 12 13 14
r2 15 16 17 18 19

### print df3_1
0 1 2 3 4
r1 10 11 12 13 14
r2 15 16 17 18 19

### print df3_1[0:1] # 1行目の選択
0 1 2 3 4
r1 10 11 12 13 14

### print df3_1[1:2] # 2行目の選択
0 1 2 3 4
r2 15 16 17 18 19

### print df3_1[0:2] # 1〜2行目の選択
0 1 2 3 4
r1 10 11 12 13 14
r2 15 16 17 18 19

### print df3_1[0] # 0列目の選択
r1 10
r2 15
Name: 0, dtype: int32

### print df3_1[1] # 1列目の選択
r1 11
r2 16
Name: 1, dtype: int32

### print df3_10,2,3 # 0列目、2列目、3列目の選択
0 2 3
r1 10 12 13
r2 15 17 18

### print df3_1.loc['r1'] # 1行目の選択
0 10
1 11
2 12
3 13
4 14
Name: r1, dtype: int32

### print df3_1.loc['r2'] # 2行目の選択
0 15
1 16
2 17
3 18
4 19
Name: r2, dtype: int32

### print df3_1.loc'r1', 'r2' # 1〜2行目の選択
0 1 2 3 4
r1 10 11 12 13 14
r2 15 16 17 18 19

###print df3_2 numpyの配列に変換して格納する必要がある
Open High Low Close Volume
r1 NaN NaN NaN NaN NaN
r2 NaN NaN NaN NaN NaN

### print df3_2
Open High Low Close Volume
r1 10 11 12 13 14
r2 15 16 17 18 19

### print df3_2['Open'] # 0列目の選択
r1 10
r2 15
Name: Open, dtype: int32

### print df3_2['High'] # 1列目の選択
r1 11
r2 16
Name: High, dtype: int32

### print df3_2'Open','Low','Close' # 0列目、2列目、3列目の選択
Open Low Close
r1 10 12 13
r2 15 17 18