PandasのDataFrameをNumpyの配列に変換する方法

スポンサーリンク

この記事では、データフレームとは何か、そしてPandas DataframeをNumpy Arrayに変換する方法、またはその逆を説明します。

では、はじめましょう。

スポンサーリンク

イントロダクション

Pythonのデータフレームは、データフレームの異なる特徴を定義する行と列からなる2次元の表形式データ構造です。

Pandas ライブラリを用いてデータフレームを作成することもできますし、既に作成されたデータフレーム (.csv ファイル) をインポートして作業を行うこともできます。


Pandasはpipコマンドでインストールすることができます

pip install pandas

上記のコードでpandasがインストールされ、Pandasライブラリの様々な機能を使用する準備が整いました。

同じように、numpyライブラリもインストールします。

pip install numpy

まず、この表形式構造(pandasデータフレーム)をnumpyの配列に変換するところを見てみましょう。


1. Pandas DataframeをNumpy Arrayに変換します。

dataframe.to_numpy()メソッドを使用することで可能です。

これは、与えられたPandas DataframeをNumpy Arrayに変換するメソッドです。

  • このチュートリアルで使用する2つのデータフレームを作成します。
#importing pandas
import pandas as pd
 
#creating dataframes
student_data = {"Name": ['Alice', 'Sam', 'Kevin', 'Max', 'Tom'],
        "exam_no": [201, 202, 203, 204, 205],
        "Result": ['Pass', 'Pass', 'Fail', 'Pass', 'Fail']}
 
set_of_numbers = {"Numbers": ['134', '273', '325','69.21','965']}
 
print("This is our first dataset :")
student_dataframe = pd.DataFrame(student_data)
print("
"
,student_dataframe)
 
print("
This is our second dataset :"
)
numbers_dataframe = pd.DataFrame(set_of_numbers)
print("
"
,numbers_dataframe)
  • student_data と set_of_numbers という2つのデータフレームを作成しました。データフレームは以下のような感じです。
print(type(student_dataframe))
  • Pandas DataframeをNumpy Arrayに変換する前に、型を見てみましょう。
print(type(numbers_dataframe))
<class 'pandas.core.frame.DataFrame'>

上記の両方のステートメントに対する出力は同じです。

student_array = student_dataframe.to_numpy()
print(student_array)
  • このPandas DataframeをNumpy Arrayに変換するには、以下のコードを実行します。

student_dataをNumpy配列に変換する

[['Alice' 201 'Pass']
 ['Sam' 202 'Pass']
 ['Kevin' 203 'Fail']
 ['Max' 204 'Pass']
 ['Tom' 205 'Fail']]

結果は以下の通りです。

numbers_array = numbers_dataframe.to_numpy()
print(numbers_array)

2番目のデータフレーム (set_of_numbers) の場合

[['134']
 ['273']
 ['325']
 ['69.21']
 ['965']]

結果は以下の通りです。

print(type(student_array))
print(type(numbers_array))
  • 両方の配列のデータ型を確認することもできます。

出力: 0

結果は以下の通りです。

<class 'numpy.ndarray'>
<class 'numpy.ndarray'>

このように、わずか数ステップでPandas DataframeをNumpy Arrayに変換したことがよくわかります。

これはデータフレームとその変換を処理する最も簡単な方法です。

  • さらに、データフレーム内のカラムのデータ型を変更することもできます。2番目のデータフレームがいくつかの整数値といくつかの浮動値で構成されているとすると、それらをすべてfloatに変更してみましょう。
print(numbers_dataframe.to_numpy(dtype ='float64'))

結果は以下の通りです。

[[134.  ]
 [273.  ]
 [325.  ]
 [ 69.21]
 [965.  ]]

2. Numpy Array から Pandas Dataframe への変換

Pandas DataframeからNumpy Arrayへの変換は理解できたと思いますので、データをNumpy Arrayに戻す必要があるかもしれません。

その方法について見ていきましょう。

  • まず、numpy arrayを定義します。まず、numpyの配列を定義し、pandasライブラリのpandas.DataFrame()関数で変換を行います。
#importing pandas and numpy
import pandas as pd
import numpy as np
 
#defining numpy array
arr1 = np.array([[1,6,4,5], [3,7,2,4], [9,5,3,7]])
print("Numpy array : ")
print(arr1)

というわけで、配列はこんな感じです。

Numpy array :
[[1 6 4 5]
 [3 7 2 4]
 [9 5 3 7]]
  • これをpandasのdataframeに変換します。
#converting array to dataframe
df = pd.DataFrame(arr1)
print("
pandas dataframe :"
)
df

変換後のデータフレームは:

type(df)
  • データフレームの種類を確認します。
pandas.core.frame.DataFrame

出力される。

#converting and providing headers
df = pd.DataFrame(arr1, index = ["1","2","3"], columns = ["A","B","C","D" ])
print("
pandas dataframe :")
df
  • データフレームの行と列に独自のヘッダを付与することも可能です。行のヘッダはindexキーワードで、列のヘッダはcolumnsキーワードで指定します。
Dataframes

これで、データフレームは次のようになります。

Pandas Dataframe to Numpy Array

まとめ

以上で、本記事を終了します。

この記事であなたは以下を理解しました。

  • pandasのデータフレームとnumpyの配列の基本的なこと
  • pandasのデータフレームをnumpyの配列に変換する方法
  • numpyの配列をpandasのデータフレームに変換する方法

この記事があなたにとって有用であったことを願っています。

ありがとうございました。

参考文献

  • https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html
  • https://stackoverflow.com/questions/13187778/convert-pandas-dataframe-to-numpy-array/
タイトルとURLをコピーしました