Pandas DataFrame を NumPy 配列に変換するには、次の 2 つの方法があります。

(1)第一のアプローチ:

df.to_numpy()

(2)第2のアプローチ:

df.values

Pandas DataFrame を NumPy 配列に変換する手順

ステップ1: DataFrameを作成する

簡単な例として、3列のDataFrameを作成しましょう。3列には数値データ(つまり整数)のみが含まれます。

import pandas as pd

data = {'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

print(df)
print(type(df))

コードを実行すると、次の Pandas DataFrame が得られます。

Pandas DataFrame を NumPy 配列に変換する方法 1

ステップ2: DataFrameをNumPy配列に変換する

df.to_numpy() の最初のアプローチを使用して、DataFrame を NumPy 配列に変換できます。

df.to_numpy()

変換を実行するための完全なコードは次のとおりです。

import pandas as pd

data = {'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

my_array = df.to_numpy()

print(my_array)
print(type(my_array))

ご覧のとおり、DataFrame は NumPy 配列に変換されています。

Pandas DataFrame を NumPy 配列に変換する方法 2

あるいは、 df.values の 2 番目のアプローチを使用して、DataFrame を NumPy 配列に変換することもできます。

import pandas as pd

data = {'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

my_array = df.values

print(my_array)
print(type(my_array))

同じ NumPy 配列が得られます。

Pandas DataFrame を NumPy 配列に変換する方法 3

ステップ3(オプション):データ型を確認する

DataFrame を配列に変換したら、コードの末尾に print(my_array.dtype) を追加して dtype を確認できます。

import pandas as pd

data = {'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

my_array = df.to_numpy()

print(my_array)
print(type(my_array))
print(my_array.dtype)

上記の例では、dtype は整数 (int64) です。

Pandas DataFrame を NumPy 配列に変換する方法 4

混合データ型の DataFrame を変換する

混合データ型 (例: 文字列/オブジェクトと整数) を持つ DataFrame がある場合はどうなるでしょうか?

たとえば、文字列と数値データが混在する別の DataFrame を作成してみましょう。

import pandas as pd

data = {'Name': ['Jon', 'Maria', 'Bill'],
        'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

print(df)
print(type(df))

DataFrame は次のようになります。

Pandas DataFrame を NumPy 配列に変換する方法 5

上記の DataFrame を NumPy 配列に変換し、dtype を確認しましょう。

import pandas as pd

data = {'Name': ['Jon', 'Maria', 'Bill'],
        'Age': [25, 47, 38],
        'Birth Year': [1995, 1973, 1982],
        'Graduation Year': [2016, 2000, 2005]
        }

df = pd.DataFrame(data)

my_array = df.to_numpy()

print(my_array)
print(type(my_array))
print(my_array.dtype)

ご覧のとおり、この場合の dtype は object です。

Pandas DataFrame を NumPy 配列に変換する方法 6