【Python】pandasでExcelファイルの読み込み(pandas.read_excel)

pandasでExcelファイルを読み込み、DataFrameにセット

 

papi
papi

pandasでExcelファイルを読み込み、DataFrameにセットする方法を紹介します。

 

タイトル行のあるExcelファイルの読み込み

【Excleデータ:character.xlsx characterシート】

キャラクターID 名称 タイプ 属性 形態
1978 アシュリー 妖精 契約
2355 シャンゼリゼ 妖精 進化
2495 アーク ドラゴン 契約

タイトル行のあるExcelファイル(character.xlsx)。

 

【コード&実行結果】

import pandas as pd

df = pd.read_excel('character.xlsx')
print(df)
print(df.shape)
print(df.columns)
print(df.index)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

RangeIndex(start=0, stop=3, step=1)

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_excel('character.xlsx')

ExcelファイルをDataFrameに読み込み。シート名を指定しない場合は、最初のシートが読み込まれる。

 

print(df)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

DataFrameの列名(カラム名)には、1行目がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

 

タイトル行のあるExcelファイルの読み込み(先頭から指定行分スキップ)

【Excleデータ:character.xlsx characterシート】

幻獣契約キャラクター一覧
キャラクターID 名称 タイプ 属性 形態
1978 アシュリー 妖精 契約
2355 シャンゼリゼ 妖精 進化
2495 アーク ドラゴン 契約

タイトル行のあるExcelファイル(character.xlsx)。

 

【コード&実行結果】

import pandas as pd

df = pd.read_excel('character.xlsx',skiprows=1)
print(df)
print(df.shape)
print(df.columns)
print(df.index)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

RangeIndex(start=0, stop=3, step=1)

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_excel('character.xlsx',skiprows=1)

Excelデータの先頭1行目は取り込みが不要なデータのため「skiprows=1」を指定して、1行目をスキップして2行目からExcelファイルをDataFrameに読み込み。シート名を指定しない場合は、最初のシートが読み込まれる。

 

print(df)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

DataFrameの列名(カラム名)には、2行目がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

 

タイトル行のないExcelファイルの読み込み

【Excleデータ:character.xlsx characterシート】

1978 アシュリー 妖精 契約
2355 シャンゼリゼ 妖精 進化
2495 アーク ドラゴン 契約

タイトル行のないExcelファイル(character.xlsx)。

 

【コード&実行結果】

import pandas as pd

df = pd.read_excel('character.xlsx', header=None)
print(df)
print(df.shape)
print(df.columns)
print(df.index)

df1 = pd.read_excel('character.xlsx', header=None, \
                  names=('キャラクターID', '名称', 'タイプ', '属性', '形態'))
print(df1)

<実行結果>
 0 1 2 3 4
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Int64Index([0, 1, 2, 3, 4], dtype='int64')

RangeIndex(start=0, stop=3, step=1)

キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_excel('character.xlsx', header=None)

csvデータに日本語が含まれるためパラメーターで「encoding=’shift-jis’」、csvデータにタイトル行がないためパラメーターで「header=None」を指定して、csvファイルをDataFrameに読み込み。

Excelデータにタイトル行がないためパラメーターで「header=None」を指定して、ExcelファイルをDataFrameに読み込み。シート名を指定しない場合は、最初のシートが読み込まれる。

 

print(df)

<実行結果>
 0 1 2 3 4
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Int64Index([0, 1, 2, 3, 4], dtype='int64')

DataFrameの列名(カラム名)には、0から始まる連番がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

df1 = pd.read_excel('character.xlsx', header=None, \
                  names=('キャラクターID', '名称', 'タイプ', '属性', '形態'))
print(df1)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

Excelファイル読み込み時にnamesパラメーターを指定して、DataFrameの列名をセットすることも出来る。

 

コメント