最終更新日:2021/9/2

array(ary)からDataFrame(df)、DataFrame(df)からarray(ary)の相互の変換を説明します。

【説明すること】

【各変換方法のページ一覧】

To(変換後)
ListSeriesDataFramearray
From
(変換前)
Listna省略5.3の1.省略
Series5.2の1.na5.3の2.省略
DataFrame5.2の2.省略na5.4の2.
array5.2の3.省略5.4の1.na

1. arrayからDataFrame (ary=>df)

array(ary)からDataFrame(df)へ変換する方法です。
これは、pd.DataFrame()の引数にarrayを指定して、

pd.DataFrame(ary)

と書きます。
カラム名やindex名を指定する場合は、columns = [], index =[].DataFrame()のオプションを指定します。

import pandas as pd
import numpy as np
ary1 = np.array([[0, 1, 2],[10, 11, 12]])
print(ary1)
#[[ 0 1 2]
# [10 11 12]]
df1 = pd.DataFrame(ary1, columns=['clm0', 'clm1', 'clm2'])
print(df1)
# clm0 clm1 clm2
#0 0 1 2
#1 10 11 12

2. DataFrameからarray(df=>ary)  

DataFrameからarrayに変換する場合は.to_numpy()を使って、

df.to_numpy()

と書きます。

df2 = pd.DataFrame([[100, 101, 102],[200, 201, 202]], columns=['CLM0', 'CLM1', 'CLM2'])
print(df2)
# CLM0 CLM1 CLM2
#0 100 101 102
#1 200 201 202
ary2 = df2.to_numpy()
print(ary2)
#[[100 101 102]
# [200 201 202]]
#文字列と数値の例
df3 = pd.DataFrame([['A0', 'A1', 'A2'], [300, 301, 302]], columns=['clm0', 'clm1', 'clm2'])
print(df3)
# clm0 clm1 clm2
#0 A0 A1 A2
#1 300 301 302
ary3 = df3.to_numpy()
print(ary3)
#[['A0' 'A1' 'A2']
# [300 301 302]]