【Python】リスト型/辞書型とデータフレーム型

Pythonの言語は、今ではEXCELでも利用できるようになっています。

EXCELでのPython利用は、基本的にはデータ分析の分野で利用することになるでしょう。

そのため、Pythonを利用せずとも、EXCELでも同様のことはできるのですが、大量のデータを扱う際など、Pythonを使用した方が楽なケースもあるかもしれません。

そこで今回は、Pythonのライブラリの中でも、「データフレーム」という形で「データ」を扱える「Pandas」のメソッドについて、まとめようと思います。

スポンサーリンク

リスト型/辞書型とデータフレーム型

リスト型とPandasのデータフレーム型は、互いに行き来することが可能です。

その方法を記載します。

リスト型から、データフレーム作成

リスト型のデータを持つ辞書型をDataFrame関数の引数に渡すことで、データフレームを生成することになります。

いくつかの実例を、以下にまとめます。

基本形

以下のコードでは、「names」「ages」という名称のリストから、データフレーム:dfを作成しています。

その際に、関数「pd.DataFrame」の引数として渡す際に、「Name」「Age」をキーとした辞書型で代入しています。

そして、それぞれのキーを列名とし、リスト型のデータが対応する列の値となっています。

コードサンプル:

import pandas as pd

names = [‘田中’, ‘山田’, ‘高橋’] ages = [25, 30, 35]

df = pd.DataFrame({‘Name’: names, ‘Age’: ages})

print(df)

実行結果:

  Name Age
0   田中   25
1   山田   30
2   高橋   35

辞書型からデータフレーム(基本形)

以下のように、初めから辞書のデータを作成し、代入してしまうことも可能です。

コードサンプル:

import pandas as pd

data = {    

‘氏名’ :[‘田中’, ‘山田’, ‘高橋’],
‘役職’ : [‘部長’, ‘課長’, ‘係長’],
‘身長’ : [175, 170, 165]

}

df = pd.DataFrame(data)

print(df)

実行結果:

   氏名 役職 身長
0 田中 部長 175
1 山田 課長 170
2 高橋 係長 165

辞書型からデータフレーム(辞書から利用する列を限定)

データフレームの定義の際に、以下のようにデータフレームを構成する内容を限定することも可能です。

以下では、定義した「氏名」「役職」「身長」のうち、「氏名」と「身長」のみを利用してデータフレームを作成しています。

コードサンプル:

import pandas as pd

data = {

‘氏名’ :[‘田中’, ‘山田’, ‘高橋’],
‘役職’ : [‘部長’, ‘課長’, ‘係長’],
‘身長’ : [175, 170, 165]

}

df = pd.DataFrame(data, columns=[“氏名”, “身長”])

print(df)

実行結果:

   氏名 身長
0 田中 175
1 山田 170
2 高橋 165

なお、データフレーム生成時に対応するキーを持っていない場合、そのデータの列の値にはNaNが割り当てられます。

以下では、一例として、「役職」の代わりに、存在しない「グレード」に置き換えています。

コードサンプル(対象のキーがない場合):

import pandas as pd

data = {

‘氏名’ :[‘田中’, ‘山田’, ‘高橋’],
‘役職’ : [‘部長’, ‘課長’, ‘係長’],
‘身長’ : [175, 170, 165]

}

df = pd.DataFrame(data, columns=[“氏名”, “グレード”, “身長”])

print(df)

実行結果(対象のキーがない場合):

   氏名 グレード 身長
0 田中      NaN  175
1 山田      NaN  170
2 高橋      NaN  165

スポンサーリンク

辞書型からデータフレーム(列名変更)

データフレームを定義時に列名を変更することも可能です。

以下では、日本語の列名から、英語の列名に置き換えています。

コードサンプル:

import pandas as pd

data = {

‘氏名’ :[‘田中’, ‘山田’, ‘高橋’],
‘役職’ : [‘部長’, ‘課長’, ‘係長’],
‘身長’ : [175, 170, 165]

}

df = pd.DataFrame(data, columns=[“氏名”, “役職”, “身長”])
df.columns = [“Name”, “Position”, “height”]

print(df)

実行結果:

  Name Position height
0   田中      部長    175
1   山田      課長    170
2   高橋      係長    165

ネスト化されたリストからデータフレーム

もちろんネスト構造のリストからデータフレームを作成することもできます。

コードサンプル:

import pandas as pd

data = [[‘田中’, 25], [‘山田’, 30], [‘高橋’, 35]] df = pd.DataFrame(data)

print(df)

実行結果:

       0   1
0 田中 25
1 山田 30
2 高橋 35

この時、列名を指定しないと、上記の結果のように、列が「0」「1」のように数字になってしまいます。

そのため、列名を指定したいときは、以下のように記載して下さい。

コードサンプル(列名指定):

import pandas as pd

data = [[‘田中’, 25], [‘山田’, 30], [‘高橋’, 35]]

df = pd.DataFrame(data, columns=[‘Name’, ‘Age’])

print(df)

実行結果(列名指定):

   Name Age
0    田中   25
1    山田   30
2    高橋   35

データフレームからリストを作成

データフレーム型のデータから特定の列を抽出する方法で、リスト型を生成することになります。

以下に実例を、記載します。

コードサンプル:

import pandas as pd

df = pd.DataFrame({

‘氏名’ :[‘田中’, ‘山田’, ‘高橋’],
‘年齢’ : [25, 30, 35]

})

name_list = df[‘氏名’].tolist()
hight_list = df[‘年齢’].tolist()

print(df)

print(”)
print(name_list)

print(”)
print(hight_list)

実行結果:

   氏名 年齢
0 田中   25
1 山田   30
2 高橋   35

[‘田中’, ‘山田’, ‘高橋’]

[25, 30, 35]

まとめ

今回は、Pythonで扱えるライブラリの「Pandas」において、「リスト型/辞書型から、データフレーム型を作成する方法」および、「データフレーム型からリスト型を作成する方法」について記載しました。

Pandasは、Pythonのデータ処理に関わるライブラリで、EXCELなどでも利用できるようになります。

ぜひ、参考にしてみて下さい。

広告